所以我有这个结构:
typedef struct type {
      int a;
      char* b;
} type;
在main程序中,我制作了这些结构的2个数组,并使用malloc():
type *v;
type *w;
v=malloc(50*sizeof(type));
w=malloc(50*sizeof(type));
现在,如果我想释放这些结构数组是正确的:
free(v);
free(w);
?
是的,这是正确的.您只需要传递由malloc()family和family 返回的指针.
调用时,您无需提及/提供已分配内存的大小free().尺寸将自动处理(通过操作系统).
FWIW,在情况下,您已经分配的动态内存的成员,如w[i].bS,你需要free()他们首先是因为,一旦你打电话free()的w,分配的所有内存w[i].b将无法访问,因此你的程序将被泄漏内存.
| 归档时间: | 
 | 
| 查看次数: | 60 次 | 
| 最近记录: |