assign() 함수를 사용하여 구조체 포인터 변수 l
에 저장하는 구조체에 메모리를 할당합니다.
하지만이 코드를 실행하면 없다는 오류가 :구조체 포인터를 반환하려고 시도합니다
'반환'이 범위에서 선언되지는.
코드는
#include<stdio.h>
#include<stdlib.h>
typedef struct list {
int a;
char c;
};
list *assign();
int main() {
list *l;
l = assign();
l->a = 20;
printf("%d",l->a);
return 0;
}
list *assign() {
list *ptr = (list*)malloc(sizeof(list));
reutrn ptr;
}
''reutrn ptr;'을''ptr; '로 변경하십시오. –
완료되면 메모리를 '비우기'를 기억하십시오. 더 나은 점은 메모리 관련 문제를 기능과 분리하십시오. 생성자/소멸자가 필요한 경우 두 가지를 모두 작성하십시오. 염려를 분리하면 명확하고 명확한 코드가 작성되므로 프로젝트가 성장함에 따라 메모리 누수의 위험을 최소화 할 수 있습니다. – Myst