|
예제가 잘못됐네요 ㅠㅠ
말씀데로 실제 코딩에서는 struct_a *A;
잡았습니다 만약 밑에 예제대로라면 에러가 났겠죠 ^^;;;
struct_a *A= new struct_a();
이렇게 잡았구요 메모리 할당 실패입니다
코드가 길질도 않아서 Heap영역을 많이 잡은것도 아닙니다
또다른 이유가 있는지 고수님들의 경험담을 듣고 싶습니다
그럼 수고하세요
장성호 님이 쓰신 글 :
: 자그만한 실수가 있으시네요
:
:
: 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 메모리 용량을 늘리는 옵션이 있는지요
: : 답변 부탁드립니다
|