
struct ifoo_version_42 { int x,y,z; char *imageData;}; 其中imageData类似于imageData = new char [50000];
我们可以执行以下 *** 作:
template< typename T >voID del( T a ) // we promise to use this only on C Plain old data structs=){ delete a;} 在这个结构上,它是否足以清理记忆形式,如果?
解决方法 删除结构不会递归删除其中的任何指针,因此不会释放imageData指向的char数组.你对delete []的使用我也有些困惑.您可以使用delete []释放数组(使用new []分配),或使用delete释放单个对象(使用new分配).你不能混合它们,也没有说你如何分配一个或多个ifoo_version_42实例.例如,以下内容具有未定义的行为:
ifoo_version_42 *x = new ifoo_version_42;del(x);
以下是好的:
ifoo_version_42 *x = new ifoo_version_42[1];del(x);总结
以上是内存溢出为你收集整理的是否可以使用C中的删除删除C POD?全部内容,希望文章能够帮你解决是否可以使用C中的删除删除C POD?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)