正在删除一个与释放指针一样的指针(分配内存)?
解决方法
删除一个指针(或删除它指向什么,或者)意味着
delete p; delete[] p; // for arrays@H_403_7@p在该声明之前被分配了
p = new type;@H_403_7@它也可以指使用动态内存管理的其他方式,如免费
free(p);@H_403_7@这是以前使用malloc或calloc分配的
p = malloc(size);@H_403_7@后者通常被称为“释放”,而前者通常被称为“删除”. delete用于具有析构函数的类,因为除释放内存之外,delete将调用析构函数.免费(和malloc,calloc等)用于基本类型,但是在C new和delete中也可以使用它们,所以没有太多的理由在C中使用malloc,除了兼容性原因.