간단하고 연결 목록을 사용하여 작업하고 있었고 이해할 수없는 것이 있다는 것을 깨달았습니다. 아래의 프로그램이 3을 인쇄하지 않는 이유는 무엇인지 알 수 없습니다 (난수를 인쇄합니다). 런타임시 오류가 없으며 y가 NULL이 아니라는 것이 이상하다고 생각합니다. Y를 변경하기 위해C에서의 간단한 포인터 문제 - 잘못된 값
struct ceva
{
int y;
};
typedef struct ceva str;
void do_something(str *x)
{
str *p = (str *)malloc (sizeof (str));
p->y = 3;
x = p;
}
int main(void)
{
str *y;
do_something (y);
printf ("%d", y->y);
}
+1 완전한 컴파일 가능한 프로그램을 제공합니다. 당신이''과''을 포함했다면 나는 +2를 주었을 것입니다. –
감사합니다, 나는 가지고 있었지만 미리보기에 포함 된 것을 보지 못했습니다. 그래서 그들을 제거하기로했습니다. –