동적으로 힙에 메모리를 할당하고 할당 된 메모리를 삭제하려고합니다. 컴파일러는 CharArray을 삭제하려고 할 때 다음C++ 초보자 코드 삭제
// String.cpp
#include "String.h"
String::String() {}
String::String(char* source)
{
this->Size = this->GetSize(source);
this->CharArray = new char[this->Size + 1];
int i = 0;
for (; i < this->Size; i++) this->CharArray[i] = source[i];
this->CharArray[i] = '\0';
}
int String::GetSize(const char * source)
{
int i = 0;
for (; source[i] != '\0'; i++);
return i;
}
String::~String()
{
delete[] this->CharArray;
}
내가 오류입니다 : 다음은 나에게 어려움을주고있다 코드가
가 0xc0000005 : 액세스 위반 위치 0xccccccc0을 읽고.
그리고 여기 스택의 마지막 호출입니다!
msvcr100d.dll 운영자가 삭제 (무효 * pUserData) 라인 52 + 0x3으로는 바이트 C++
나는 꽤 확신 이 코드 안에 오류가 있지만 필요한 다른 정보를 제공 할 것입니다. 오, 예, VS 2010 for XP를 사용합니다.
편집 : Heres는 내 String.h는
// String.h - string class
#pragma once
#define NOT_FOUND -1
class String
{
public:
String();
String(char* source);
static int GetSize(const char * source);
int Find(const char* aChar, int startPosition = 0);
~String();
private:
char* CharArray;
int Size;
};
기본 구성을 마치면'CharArray'의 값은 무엇입니까? – GManNickG
이것을 사용하는 곳에 코드를 게시 할 수 있습니까? CharArray가 초기화되지 않은 채로있는 기본 생성자를 사용하여 코드를 작성한 것으로 의심됩니다. – kibibu
그냥 회원이라고 말할 수있는 이유는이 -> 회원입니까? – tiftik