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

(Resolvido) ponteiro para ponteiro como matrizes...uma ajuda por favor


ericmoraess

Pergunta

Olá pessoal...estou escrevendo um código onde se viu a necessidade de ter uma matriz dinâmica. Escolhi implementar utilizando ponteiro para ponteiro e fiz o seguinte código :

...

char **files;

.

.

.

(files) = (char**)malloc( 50 * sizeof(char));

for( j = 0 ; j < 50 i ; j++ ){

*(files+j) = (char*)malloc(50*sizeof(char));

strcpy( *( files + j ) , "eric" );

}

printf("primeiro elemento é : %s " , *( files + 0 ) ) ;

Ok, mas o resultado que deveria ser eric não é exibido..é exibido um lixo de memória...

Explicação :

//aloco espaço para 50 ponteiros.

(files) = (char**)malloc( 50 * sizeof(char));

//cada ponteiro eu aloco mais 50 posições

*(files+j) = (char*)malloc(50*sizeof(char));

//em cada ponteiro eu guardo uma string.

strcpy( *( files + j ) , "eric" );

Bem...antes que sugiram que seja a quantidade de memória alocada, eu testo cada alocação efetuada...não postei pra não complicar o código...

um caso interessante é o seguinte caso eu venha a fazer o seguinte :

load = (char**)malloc( 50 * sizeof(char));

*load = (char*)malloc(50*sizeof(char));

*(load+1) = (char*)malloc(50*sizeof(char));

*(load+2) = (char*)malloc(50*sizeof(char));

*(load+3) = (char*)malloc(50*sizeof(char));

*(load+4) = (char*)malloc(50*sizeof(char));

*(load+5) = (char*)malloc(50*sizeof(char));

*(load+6) = (char*)malloc(50*sizeof(char));

*(load+7) = (char*)malloc(50*sizeof(char));

*(load+8) = (char*)malloc(50*sizeof(char));

*(load+9) = (char*)malloc(50*sizeof(char));

*(load+10) = (char*)malloc(50*sizeof(char));

*(load+11) = (char*)malloc(50*sizeof(char));

*(load+12) = (char*)malloc(50*sizeof(char));

//continua...

strcpy( *( files + 9 ) , "eric" );

printf("nono elemento é : %s " , *( files + 8 ) ); //exibe com sucesso...

Alguém tem alguma dica a dar ? Algo me intriga com o strcpy();

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

3 respostass a esta questão

Posts Recomendados

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...