非常感谢!不过我记得还有一个说法,就是自定义类型或结构体不能像int a一样自动申请内存?所以才需要手动申请??但这样的话又和您的回答有些许冲突,从您的回答来看不存在不会自动分配内存的问题,而是会分配到栈中,所以我又迷糊了
追答你可以尝试一下,看看正确的答案究竟是什么
非常感谢!不过我记得还有一个说法,就是自定义类型或结构体不能像int a一样自动申请内存?所以才需要手动申请??但这样的话又和您的回答有些许冲突,从您的回答来看不存在不会自动分配内存的问题,而是会分配到栈中,所以我又迷糊了
追答你的那个说法是错误的
struct node {};
struct node mynode; //这里就是自动分配的内存
如同:
int a =208; //以上两个都不需手动释放,因为是自动分配的
又:
int *a =(int*)malloc(sizeof(int));
struct node *ad =(struct node*)malloc(sizeof(struct node));
这两个就需要手动释放,因是自己主动在堆上申请的:
free(a);free(ad);