我正在使用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;'更改为'return ptr;'。 –
一旦完成,请记住“释放”内存......更好的是,将内存问题与功能分开。如果您需要构造函数/析构函数,请将它们都写入。通过分离问题,您将编写更清晰,更清晰的代码,从而最大限度地减少随着项目成长而发生内存泄漏的风险。 – Myst