전에 모두 내가 이미 대답을 검색했다는 것을 알려주지 만, 나는 그 문제를 왜 설명하고 있는지 찾을 수 없습니다.삭제 이해 [+] C++
임 지금 그래서 전에,이 방법으로 C++를 사용하는 날이 목적과 일부 comcepts의 이해를 학습 것을 당신에게 말을하지 말해
C++
를 배우는 학생 및 메신저.마지막 문장에서 프로그램이 중단됩니다. delete [] tempVector; 내가 [[] 벡터 삭제 이후 왜 일어나는 지 이해할 수 없다. 잘 작동합니다.
오류 : arr.exe 플레이는 중단 점
잘못하고 무엇 메신저 이해 도와주세요 촉발했다.
고맙습니다.
class BetterArray
{
private:
int* vector;
int count;
public:
BetterArray(int value);
BetterArray(int* vec, int size);
~BetterArray();
void add(int value);
int* getArray();
};
BetterArray::BetterArray(int value)
{
count = 1;
vector = new int[1];
vector[0] = value;
}
void BetterArray::add(int value){
int* tempVector = new int[count + 1];
for (int i = 0; i < count; i++)
tempVector[i] = vector[i];
tempVector[count] = value;
count++;
delete[] vector;
vector = tempVector;
delete[] tempVector; // programa crahses here.
}
나는 당신이 말한 곳에서 프로그램이 충돌한다고 생각하지 않습니다. 그러나 방금 전에 당신이 방금 복사 한 데이터를 해제했다.'delete [] tempVector; '는 두 포인터가 같은 위치를 가리 키므로'delete [] vector;'와 같다. – drescherjm
'delete [] vector;에서'vector'는 무엇입니까? –
'vector'는 어떻게 선언됩니까? –