이중 포인터 초기화 하는것 때문에 그러거등여..
글쓴이: archtyrael / 작성시간: 일, 2003/04/06 - 5:53오후
첨에는struct Flight **temp = new Flight[num][1];
이런식으로 초기화 할려 했는데
안되길래
아래와 같은 방법으로 했거등여
그런데두 안되네여..
struct Flight **temp; for(int i=0;i<num;i++) temp[i] = new Flight;
다른 초기화 방법 아시면 좀 갈쳐주세여..
반드시 동적 메모리 할당을 써야 해서여.. 2중 포인터루..
Forums:
[code:1]typedef struct tagMYTYPE {.
ㅡ_-)a 글쎄요... 긁적긁적
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
아마 이렇게 될거에요.
실행을 안해봐서 장담은 못합니다. -_-
왜 안되는지 이해를 못했다가...
왜안될까 왜안될까 보고있었는데 cjy1126님의 글을 보고 알았네요..
이미 아셨을거 같지만 *temp 들이 가리킬 영역은 new 로 선언되었지만
temp가 가리킬 영역은 new로 선언되지 않았기 때문입니다.
즉 temp[0], temp[1], temp[2] 는 정의되지 않은 임의의 공간을 가리키고 있기 때문에
도스에서 터보씨로 하면 될지도 모르지만(알수없이 제네랄 페일류어 날 가능성이 높긴하지만)
gcc로 하면 아마 에러가 날겁니다.
저 코드상으로 수정을 하자면
이면 될것 같습니다.
저도 역시 안해봐서 장담은 못하겠습니다. :oops:
..........No Sig.........|
-------------------+
[code:1]struct Flight **temp; for
위의 temp는 메모리 할당을 하지 않았습니다.
컴파일러마다 다르겠지만 쓰레기값이나 NULL을 가지겠죠.
임의로 num을 10으로 하면...
이런식으로 temp에 num개수만큼의 포인터배열을 할당해 주고..
각각 다시 struct Temp를 할당해 주면 됩니다.
delete는 순서만 바꿔서 하면 되겠죠.. ^^;
가끔은 밥을 굶어도 살 수 있다.
댓글 달기