그냥
INFO라는 구조체있고
INFO* num; 이라는 구조체형 포인터변수 선언하고
void Exp(INFO* out)
{
out = (INFO*)malloc(sizeof(INFO)*1);
}
Exp(num);
이라는 소스가 있음.
그럼 여기서 주소값을 가르키는 방향(-> 이라하면)
out -> num -> 초기화되지않은 쓰레기값 이 되잖아 (즉 out이 num을 가르키고 num이 초기화되지 않은 쓰레기값을 가르키고
근데 malloc을 쓰면서
out ->( malloc이 새로 생성한 메모리상 다른 주소값 )-> 초기화되지 않은 쓰레기값 이 되버리잖아
즉 num을 가르키던 out이 다른 곳을 가르키게된다이거지
이걸 malloc함수가 새로 메모리상 다른 곳 주소값을 생성할때 out의 주소값을 바꾸는게 아니라
num이 가르키던곳을 바꾸게 어떻게 하냐 이거에여 형들
갈켜주어 ㅠㅠㅍ
INFO라는 구조체있고
INFO* num; 이라는 구조체형 포인터변수 선언하고
void Exp(INFO* out)
{
out = (INFO*)malloc(sizeof(INFO)*1);
}
Exp(num);
이라는 소스가 있음.
그럼 여기서 주소값을 가르키는 방향(-> 이라하면)
out -> num -> 초기화되지않은 쓰레기값 이 되잖아 (즉 out이 num을 가르키고 num이 초기화되지 않은 쓰레기값을 가르키고
근데 malloc을 쓰면서
out ->( malloc이 새로 생성한 메모리상 다른 주소값 )-> 초기화되지 않은 쓰레기값 이 되버리잖아
즉 num을 가르키던 out이 다른 곳을 가르키게된다이거지
이걸 malloc함수가 새로 메모리상 다른 곳 주소값을 생성할때 out의 주소값을 바꾸는게 아니라
num이 가르키던곳을 바꾸게 어떻게 하냐 이거에여 형들
갈켜주어 ㅠㅠㅍ
INFO** out 이 되야지,, 넘겨줄땐 &num이 되고..
ㄴ그렇게해봤는데 안되던데??
위에분 말처럼 인자를 더블포인터로 넘겨주면됨
난 아직도 모르게따..ㅋ 애초에 원하는게 num에 메모리 할당하는건가?
태클인데 가\'리\'키고
내용은 *out = (INFO*)malloc(sizeof(INFO)*1); 으로 바꾸고
ㄴ에잉 그정도로 바본아냥................
ㅋㄱ// ㅇㅋ 맞음 num의 메모리를 새로 할당하는거지..
dot//쌍큐. 내가 맞춤법 ㅄ....
아무래도 부수적인 오류도 있나봐.. 그냥 혼자찾아볼게요 횽들 ㅠㅠ
구조체포인터 참조변수를 파라미터로 넘겨준 후에 동적할당시켜서 그놈주소를 알려면 return을 해줘야져..
[놀래서 롤리(팝) 설레서 설리 진짜라서 진리 구려서 구리 감먹어서 감기 포수가 포기] <--이거 하지 마셈 재미없고 딱히 끌리는 멘트도 아님
[허큭허극] <-- 이것도 재미없고 딱히 끌리는 멘트도 아님
포인터변수는 힙영역에 있는 메모리주소를 바인딩 해주는 역할밖에 못해주니까 그 주소를 잡아주는 변수가 없으면 다시는 접근할 수 없어여.따라서 반환을 해줘야 사용이 가능하져. 글내용을 정확히 모르겠는데 글쓴분도 뭔가 좀 햇갈려하시는거 같은데 내용이 정확히 파악이 안됨;
자살춤//ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅅㅂ....그거 한지가언젠뎈ㅋㅋㅋ 알아 바꿀꺼야 ㅄ같은거 나도안다고....젡장.
한지가 언제라니 바로 밑에글에서 까지 해놓고 ㅋㅋㅋㅋ
창의적인걸로 고심고심고두심 하고 머리를 쥐어짜내 터트려서 뽑아내야되
ㄴ 아그거 지하철에서 심심해서 해본거야 원래는 디시인사이드 무슨무슨 어플 뭐이런거였어 허큭허극은 진짜 예전부터했는데...