모든 요소를 루핑하고 각각에 delete
을 호출하여 동적으로 할당 된 배열을 삭제하려고합니다.
(배열을 다른 위치로 "이동"해야하기 때문에 원래 배열을 복사 한 다음 삭제해야합니다. 그러나 각 요소를 동시에 복사하는 것보다 2 배의 시간이 걸릴 것이므로 delete
을 호출하십시오. 개별적으로)동적 배열의 요소를 하나 하나씩 삭제
나는이 다음 코드 :
int main()
{
int *n=new int[2];
delete n;
delete (n+1);
}
하지만 난이 분할 오류 난이를 실행할 때마다 무엇입니까 ....
이 잘 작동하지만 - :
int main()
{
int *n=new int[1];
delete n;
}
그래서, 제 생각 엔 삭제가 어떻게 든 하나의 요소 대신 전체 배열을 삭제한다는 것입니다!
제 추측이 맞다면 아무에게도 설명해주십시오. 가능한 경우 해결 방법을 제안 하시겠습니까?
나는 개별적 요소를 삭제할 수 없습니다 우분투 13.04
가장 간단한 방법은 동적 배열 대신 C++ 표준 컨테이너 (이 경우에는'std :: vector')를 사용하고 단순히 컨테이너의 erase 메소드를 사용하는 것입니다. 그러나, 다른 한편으로, 당신은 무엇을하려고합니까? 왜 요소를 하나 하나씩 삭제하고 싶습니까? – Manu343726
사실 저는 다른 벡터 모양의 컨테이너를 만들려고했습니다. [그냥 std :: vectors가 두포에서 어떻게 작동하는지 더 잘 이해하기] –
@Ammol C++을 배우려면? 승인. 그래서 당신의 질문은 벡터의 소멸자에 관한 것입니까? 이것이 하나의 요소를 하나씩 삭제하려고 한 이유입니다. – Manu343726