순서 : 예 (위험 부담 있음), 그렇지 않을 수 없습니다.
첫 번째로 배열에서 몇 개의 요소가 있으므로 끝에서 벗어나지 않도록 기억해야합니다 (항상).
typedef struct {
int len;
int* contents;
} FiniteArray;
다음 int** arrays
실제로 FiniteArray
구조 자체가 FiniteArray*
의 배열 만들기 : 한 각 방법은 구조를 사용할 수 있습니다.
배열을 사용하여 100 % 설정 한 경우에도 계속 길이를 유지할 수 있습니다. 물론 잊지 마세요 : arrays
에도 요소 수가 필요합니다!
두 번째 부분이 delete[]
인 경우 배열 배열 이 삭제되지만 나머지 메모리는 할당 된 상태로 유지됩니다!
배열에 new
을 사용하면 delete[]
을 사용하는 것이 옳습니다. 그렇지 않으면 객체의 경우 delete
등을 사용하십시오. this question을 참조하십시오. 예, 복제본이라는 것을 알고 있지만 복제본이라고 표시된 것보다 더 잘 설명한다고 생각했습니다.
arrays
을 삭제하려면 먼저 개별 배열의 할당을 해제해야합니다.귀하의 경우,
delete[] arrays[0];
delete[] arrays[1];
delete[] arrays;
arrays = NULL; // always a good idea!
그냥 하나 개의 배열, 말, 첫 번째, 당신은 그것을 시도했을 때 어떤 현상이 발생
delete[] arrays[0];
arrays[0] = NULL; // always a good idea!
을 삭제하려면? – hobbs
[this] (http://stackoverflow.com/a/936702/1141471) 도움이 될 수 있습니다 – 4pie0
'std :: vector> 배열 (10);을 사용하면 훨씬 편하게 생활 할 수 있습니다. 배열 [0] .resize (99); 배열 [1] .resize (47); 등. –