|
: Class a = new Class*[100];
a는 포인터도 아닌데 이런식으로 메모리 할당하면 컴파일할때 에러 뜰테데요
: a[0] = new Class();
마찬가지로 a가 배열이 아닌데 a[0]로 쓰다니요? 이상하죠?
: 클래스 객체들은 20byte정도의 크기를 필요로 합니다. 따라서 포인터의 a[1] - a[0]은 20이 됩니다.
의미로 보아서
a[0] = new Class();
a[1] = new Class();
로 할당하고 빼주었다는 얘기 같은데..
클래스 크기가 20바이트라고 a[1]-a[0]가 20이 되는거 아닙니다.
: 헌데.. 이런 객체를 몇개 생성 하다가 보면 다음과 같은 에러가 뜨면서 실행이 멈춰 버리내여..
말그대로 먼가 메모리 잘못 건드린것이지요.
포인터를 쓰다보면 잘 뜨는 에러입니다.
디버깅 하면서 라인씩 실행하다보면 어디서 죽는지 알 수 있을겁니다.
|