"Free (array)"세 번째 줄은 누구에게 알 수 있습니까? 여기 배열은 배열의 첫 번째 요소의 주소입니다 (즉, int * right 배열의 첫 번째 요소에 대한 포인터)? 2D 배열의 "열"을 해제하기 위해 세 번째 선이 필요한 이유는 무엇입니까? 나는 기본적으로 암기했다 /는 a가 ____의 주소를 가지고 있다는 것을 가리키는 포인터임을 이해한다. 이 구절이 맞습니까?동적으로 할당 된 2 차원 배열
예 : int ** a; int * b; int c; b = & c = 4; a = & b; 이게 맞습니까? 고맙습니다!!!
또한 일반적으로 이중 포인터는 기본적으로 동적으로 할당 된 배열입니까?
"마지막으로, 동적으로 할당 된 다차원 어레이 중 하나를 해제해야 할 때 우리가 할당 한 각각의 메모리 덩어리를 해제해야한다는 것을 기억해야합니다. (최상위 포인터를 해제하면됩니다. "http://www.eskimo.com/~scs/cclass/int/sx9b.html
for(i = 0; i < nrows; i++)
free(array[i]);
free(array);
또한 array가 char * 인 printf ("% s", array)를 사용할 때 컴파일러는 배열을 array [0]의 주소로보고 있지만 올바르게 인쇄합니까? 나는 그것을 올바르게 이해하고 있는지 궁금 할뿐입니다. –