|
자그만한 실수가 있으시네요
struct_a A; // ==> 이렇게만 해도 이미 스택에 잡혀 메모리가 할당됩니다.
struct_a A= new struct_a(); // ==> 이미 할당된 메모리에다가 힙에 잡은 메모리를 할당하겠다는 구문인데....?
이게 가능할런지?
struct_a *A; // 그냥 포인터 변수로 A를 선언하시면 됩니다.
struct_a *A= new struct_a();
이렇게 해야 포인터 변수는 스택에 잡히겟지만
실제 구조체의 메모리는 힙에 할당되겠죠...
그럼
고구마 님이 쓰신 글 :
: 제가 이런경우는 처음 당하는데요
:
: typedef struct
: {
: int a;
:
: }struct_a;
:
:
: void init()
: {
: struct_a A= new struct_a();
: // 여기서 메모리 할당이 실패합니다
:
: struct_a A= new struct_a;
: // 이렇게 해도 실패합니다
:
: struct_a A = (struct_a *)malloc(sizeof(struct_a));
: // 이렇게 해도 실패하구요
:
: }
:
: 도대체 왜 C++Builder에선 왜 메모리 할당이 실패하는지요 혹시 Heap 메모리 용량을 늘리는 옵션이 있는지요
: 답변 부탁드립니다
|