2차원배열을 c언어에서 동적할당하고 메모리 해제를 해줘야되잖아
근데 궁금한게
for(int i=0;i i &lgt; i++){
free(arr[i];
}
free(arr); 하는데
왜 여기서 free(arr); 을 해줘야함?
for 문에서 다 해제해주지 않았냐?
2차원배열을 c언어에서 동적할당하고 메모리 해제를 해줘야되잖아
근데 궁금한게
for(int i=0;i i &lgt; i++){
free(arr[i];
}
free(arr); 하는데
왜 여기서 free(arr); 을 해줘야함?
for 문에서 다 해제해주지 않았냐?
arr이 배열인지 포인터에 동적할당 박아넣은거인지에 따라 달라지지
포인터에 동적할당 박아넣은거임
그럼 해제해야지 말이라고 하냐
아니 그러니까 for문에서 해제해줬는데 왜 또 free(arr); 을 해제해줘야되냐고
아 십.. Arr에 10개를 할당하고 arr[n]마다 10개씩 할당을 했어. 그럼 넌 전부 110개를 할당한거지? 근데 위에 포문만으로는 닌 10×10개를 해제한거라고. 그럼 남은 10개를 해제해야 하냐 말아야하냐
arr안에 있는 것들을 전부 풀어주면, 2차원배열이니까 arr 자체를 한번더 풀어주는거 아닐까요
와 천재냐 왜 나는 110개라고 생각못하고 100개로만 생각했지 100개에다가 그 위에있는 10개 포함해서 110개구나 아.. 답변고맙다
-땔-