for(i = 0; i < 26; i++){ lList[i] = malloc(sizeof(SomeStruct));}
可以稍后释放:
// (where ptr is a pointer to the first allocation in lList)for(i = 0; i < 26,i++){ free(ptr); ptr += sizeof(SomeStruct);}
编辑:
好像我不能这样做.有没有什么方法可以释放所有内存只给出第一个元素的指针?或者我应该采取完全不同的方法?
解决方法 不,它不能.无法保证这些块是连续分配的.事实上,他们几乎肯定没有我见过的所有现代实现.大多数都会在每个块之前立即存储块的大小以及其他信息.此外,如果您的内存碎片化,则块可能会在其他数据之间的可用空间中的任何位置卷起,而这些数据没有足够的空间连续放置它们. 总结以上是内存溢出为你收集整理的malloc在一个循环中,都是连续分配的块?全部内容,希望文章能够帮你解决malloc在一个循环中,都是连续分配的块?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)