| [ CnUnix ] in KIDS 글 쓴 이(By): terzeron (microkid) 날 짜 (Date): 2003년 6월 17일 화요일 오전 10시 06분 34초 제 목(Title): Re: struct 내에 동적메모리 할당 1. 이상하게도 다양한 답이 나왔는데요... 제 생각에는 방법 두 가지 모두 가능합니다. 효과도 동일합니다. (멤버 변수 arra와 arrb는 포인터이니 이 포인터가 가리키는 값도 동일해진다는 전제 하에) 2. 가능하지만 추천할만한 방법은 아닙니다. 다른 분들께서도 모양새가 좋지 않다고 하신 것처럼 말이죠. 굳이 함수를 불러서 작업을 모듈화하시려면 cc 자체를 포인터로 해서 그 공간을 할당받고 그 주소를 반환하시면 됩니다. 1) 아니면, aa와 bb의 그 주소를 넘겨서 그 공간을 할당받는 방법도 좋습니다. 2) 1) testdt *MakMem() { testdt *cc; cc = (testdt *) malloc(sizeof (testdt)); //cc->i = 3; return cc; } testdt *aa, *bb; aa = MakMem(); bb = MakMem(); 2) void MakMem(testdt *xx) { xx = (testdt *) malloc(sizeof (testdt)); //(*xx)->i = 3; return; } testdt *aa, *bb; MakMem(&aa); MakMem(&bb); 사용하기에는 차라리 1번이 낫겠군요. --- 어떤 성취가, 어떤 조롱이, 또는 어떤 고뇌가 나를 기다리고 있을지 나는 모른다. 나는 아무 것도 모른다. 그러나 나는 아직 과거의 경이로운 기적의 시대가 영원히 과거의 것이 되어 버리지는 않았다는 사실을 굳게 믿고 있다. - Stanislaw Lem - |