Ir para conteúdo
Fórum Script Brasil
  • 0

Apontadores E Alocação Dinamica


DRC

Pergunta

Oi ppl!

Estou a fazer o trabalho final de programação e estou com o problema para alocar memoria para um matriz nXn

/*Função que aloca memoria e inicia o jogo avançado*/

void avancado(){

char **sodu;

int i;

*sodu=(char *)malloc(9*sizeof(char));

//*sodu=(char *)calloc(9,sizeof(char));

if(*sodu==NULL){

printf(ERRO2);//não foi possível alocar memoria

exit(0);

}

for(i=0;i<9;i++){

*sodu=(char *)malloc(9*sizeof(char));

//sodu=(char *)calloc(9,sizeof(char));

if (sodu==NULL){

printf(ERRO2);//não foi possível alocar memoria

exit(0);

}

}

inic(sodu,9);//inicializa a matriz

numero_al(sodu,9,10);//inserir 10 números aleatórios

jogar(sodu,9);//inicia o jogo

for (i=0;i<9;i++){

free(sodu);//libertar memoria

}

free(sodu);//libertar memoria

}

Esta é a função k estou a utilizar, ao compilar não da erros nem avisos, mas ao execotar esta função o programa da

“O sodu.exe encontrou um problema e vai ser encerrado. Lamentamos qualquer inconveniente que isto lhe possa causar.”

É verdade estou a utilizar o dev-c++;

Alguém m pode ajudar?

Obrigado pela vossa atenção.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

amigo,

se isso ajudar, tá aqui um programa que aloca uma matriz dinamica que eu já tinha feito... este programa é pra saber se a matriz é identidade ou não, mas usa alocação dinamica...

#include <stdio.h>

int main()
{
      int **matriz,n,i,j,flag=0;
      int cont;
      printf("A MATRIZ é IDENTIDADE ? \n\n\n");
      
      printf("Ordem da matriz quadrada: ");
      scanf("%d",&n);

      //ALOCANDO: 
     
      matriz=(int**)malloc(n*sizeof(int));
      for(cont=0; cont<n; cont++)
      matriz[cont]=(int*)malloc(n*sizeof(int));  
     
     // FIM DA ALOCAÇÃO

      for(i=0; i<n; i++)   // lendo os dados
              for(j=0; j<n;j++)
              {
                  printf("\nMATRIZ[%d][%d]= ",i,j);
                  scanf("%d",&matriz[i][j]);
               }
      for(i=0; i<n; i++)
      {       for(j=0; j<n;j++)
              {
                       if((i==j)&&(matriz[i][j]!=1))
                       flag=1;
                       if((i!=j)&&(matriz[i][j]!=0))
                       flag=1;
                       
              }   
      }
      for(i=0; i<n;i++)
      free(matriz[i]);

      if(flag==1) 
         printf("\n\nA MATRIZ não é IDENTIDADE!!!");
      else 
         printf("\n\nA MATRIZ é IDENTIDADE!!!");
      getch();
      return 0;
}

TAMBÉM USO O DEV-C++, mas no WINDOWS.

espero ter ajudado.

Editado por Rafael Barros
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...