C : freeing a reallocated pointer

标签 c pointers free realloc

我今天发现,当我尝试释放 一个已重新分配的指针时,程序崩溃并打印“Segmentation Fault”。

在此指针(数组)上调用 realloc() 以调整数组大小并将旧数组与另一个数组合并。

进一步在程序中我必须释放它,我怎样才能绕过这个问题而不必制作某种缓冲区数组,将另外两个数组添加到它然后释放它们?

  1. PARTICLE:结构
  2. newCount:旧数组+新增数组的大小之和

代码:

group1->particleList = 
         (PARTICLE *) realloc(group1->particleList, newCount * sizeof(PARTICLE));

最佳答案

释放重新分配的指针应该没有问题。一个名为 valgrind 的程序可以为您提供有关代码中正在发生的事情的一些有值(value)的信息。

关于C : freeing a reallocated pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505991/

相关文章:

c++ - 使用 char* 时程序崩溃

c - C中的链表删除后如何释放节点

c++ - cpp中的assert.h有什么用?

c - 当我的字符串有 4-5 个字符时,write() 会添加填充吗?

我可以制作一个结构,其中超过一半的空间是填充的吗?

c - 内存映射点到指针?

c++ - 为什么 tolower 不将我的大写字符转换为小写字符?

c++ - 如何根据构造函数参数用父类(super class)类型初始化成员变量?

c - 调整动态分配数组的大小

c - 释放通过 malloc 获得的结构数组