确定的动态数组,所以这些都是我的结构:释放内存数组
struct Student
{
int id;
char* name;
};
struct HashTable
{
int size;
int noElements;
Student** elements;
};
在这里,我分配内存数组的动态数组
ht.elements = (Student**)malloc(size*sizeof(Student*));
memset(ht.elements, NULL, size*sizeof(Student*));
我的问题是,当我尝试释放这样的内存,为什么我的程序崩溃?
for(int i=0;i<ht.size;i++)
{
free(ht.elements[i]->name);
free(ht.elements[i]);
}
free(ht.elements);
如果我只写最后一行它的工作,但它不会产生内存泄漏?
@πάνταῥεῖ这是无效C. – user2079303
@ user2079303所以consdier以删除C标签也;-) –
@πάνταῥεῖ好主意! (这可能会保护这个问题不受浪费)@CanciuCostin,请说明您正在使用哪种语言。 – user2079303