저는 C가 처음이므로 실수가 있으면 바로 잡으십시오. 여기 C 구조체 변수 할당?
왜 그것을이다 나는//typdef stuff for apple, *apple_t here
apple_t get() {
apple a;
a.num = 0;
apple_t ap = &a;
printf("set num to %d\n", ap->num);
return ap;
}
// ap above is placed into read(ap)
void read(apple_t ap) {
printf("num: %d\n", ap->num);
}
이 코드와 같은 종류의의 일부 코드의 그 인쇄를 "설정"에 대한 AP-> NUM == 0,하지만 난 읽기 기능 에서의 printf를 수행 할 때 -1218550893과 같은 정크 번호가 있습니까? 무슨 일이야? 정수가 해제되어 있습니까? C는 무엇을하고 있습니까? 어떻게이 문제를 해결합니까?
C에서 잘 알려진 실수 인 로컬 변수 * 주소를 반환합니다. – Jon
코드에 [dangling pointer]가 있습니다 (http://stackoverflow.com/questions/5278859/c-dangling). -pointer-question). –
가능한 [로컬 변수의 메모리가 범위 외부에서 액세스 될 수 있습니까?] (http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope) – Jon