무엇이 잘못되었는지 말해주세요.프로그램의 정의되지 않은 동작입니다. 때로는 작동하는 데 때때로 오류가 발생합니다.
2 차원 동적 배열 만들기 : 포인터의 배열을 만든 다음 각 포인터마다 블록을 할당했습니다. 여기
코드입니다 :#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, j;
int **a = NULL;
a = (int **)malloc(5*sizeof(int *));
if (NULL == a)
{
printf("Failed to allocate memory.");
return 1;
}
for (i = 0; i < 10; i++)
a[i] = (int *)malloc(10*sizeof(int));
for (i = 0; i < 5; i++)
{
for (j = 0; j < 10; j++)
a[i][j] = i*j;
}
for (i = 0; i < 5; i++) // While running it prints this array. But...
{
for (j = 0; j < 10; j++)
printf("%4d", a[i][j]);
printf("\n");
}
/* Trying to free allocated memory. */
for (i = 0; i < 5; i++) // ... sometimes app crashes around here.
{
free(a[i]);
}
return 0;
}
같은 정의되지 않은 동작의 이유를 볼 수 없습니다
...
'malloc (5 * sizeof (int *)'-'(i = 0; i <10; i ++)) [i] = ...'- 문제가 있습니까? – Mat