【发布时间】:2021-07-18 11:49:46
【问题描述】:
我有一个结构体,其中包含一个值和对该类型的另一个结构体的引用。
struct mystruct { int val; mystruct* next; };
然后我初始化了一个像struct mystruct* ptr=NULL; 这样的指针。这个指针应该稍后指向一个结构数组。我相信做 malloc(sizeof(struct)); 会更聪明。
和免费(结构);稍后。但它似乎无论如何都有效,但它似乎不正确。我想改变它,我很难向自己解释为什么。有什么假设吗?
【问题讨论】:
-
是的,没关系,但最好发布您的示例代码以使您的问题更加清晰。
-
按照上述人的方式发布您的代码尝试/示例。但是从你写的内容来看,
free(struct);是错误的,因为 struct 不是指针,你需要使用free(ptr);释放指针 -
这就像和你的女朋友在珠宝店里一样:你可以指向任何东西(包括什么都没有),你可以随时重新决定你指向的东西。只有当你真正想要抓住你所指的东西时,你才需要非常小心地考虑可能的结果;)