Estou estudando apontadores e preciso criar uma matriz dinamicamente usando a notação **pMat. No entanto depois de inserir os valores na matriz alocada está acontencendo uma divergência na hora da imprimir os dados na tela. Imprimindo usando o Debug os valores saem conforme esperado:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
No entanto ao imprimer usando a execução padrão (F9) a matriz impressa é a seguinte:
1 1 3 4 5 <-- Não é exibido o valor 2
1 1 3 4 5 <-- Não é exibido o valor 2
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Fiz os seguintes testes:
- Usar a notação mat[][];
- Ao invés de utilizar (j+1), usei uma constante, tipo o número 3;
Pergunta
Guest --Marcelo --
Boa tarde a todos,
Estou estudando apontadores e preciso criar uma matriz dinamicamente usando a notação **pMat. No entanto depois de inserir os valores na matriz alocada está acontencendo uma divergência na hora da imprimir os dados na tela. Imprimindo usando o Debug os valores saem conforme esperado:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
No entanto ao imprimer usando a execução padrão (F9) a matriz impressa é a seguinte:
1 1 3 4 5 <-- Não é exibido o valor 2
1 1 3 4 5 <-- Não é exibido o valor 2
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Fiz os seguintes testes:
- Usar a notação mat[][];
- Ao invés de utilizar (j+1), usei uma constante, tipo o número 3;
Em ambos os resultado esteve correto!!!
Informações adicionais:
- SO - Windows Vista Home Basic;
- Dev-cpp versão 4.9.9.2;
Fico muito grato se puderem ajudar!!
int main(int argc, char *argv[])
{
int **pInt, i, j;
pInt = (int**)(malloc(sizeof(int*)*10));
for(i=0; i< 10; i++)
*(pInt+i) = (int*)(malloc(sizeof(int)*5));
for(i=0; i<10; i++)
for(j=0; j<5; j++)
*(*(pInt+j)+i) = j+1;
for(i = 0; i<10; i++)
{
for(j=0; j<5; j++)
printf("%d ", *(*(pInt+j)+i));
printf("\n");
}
free(pInt);
system("PAUSE");
return EXIT_SUCCESS;
}
[\code]
Link para o comentário
Compartilhar em outros sites
1 resposta 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.