free相关内容

为什么FreeAndNil实现在Free之前做Nil?

如果您查看FreeAndNil过程的代码,则会看到: procedure FreeAndNil(var Obj); var Temp: TObject; begin Temp := TObject(Obj); Pointer(Obj) := nil; Temp.Free; end; 仅在销毁对象引用之后才将Nil分配给对象引用的原因是什么?反之亦然? 解决方案 我 ..
发布时间:2020-07-04 18:36:21 其他开发

GlibC双重释放或损坏(关闭)

我的C程序在运行时出现错误.我发现了一些有关“双重释放或腐败"错误的信息,但没有任何意义. 这是我的代码: void compute_crc32(const char* filename, unsigned long * destination) { FILE* tmp_chunk = fopen(filename, "rb"); printf("\n\t\t\tCalcula ..
发布时间:2020-06-14 19:16:35 其他开发

在C中使用指向行令牌的指针时出现的问题

我创建了一个程序,该程序需要读取包含银行帐户和交易历史记录的CSV文件.要访问某些信息,我有一个函数getfield,它逐个令牌地读取每个行令牌: const char* getfield(char* line, int num) { const char *tok; for (tok = strtok(line, ","); tok && *tok; ..
发布时间:2020-05-28 23:24:51 其他开发

在c中释放指向动态数组的指针

我用malloc在c中创建一个动态数组. 例如: myCharArray = (char *) malloc(16); 现在我是否要创建一个像这样的函数并将myCharArray传递给它: reset(char * myCharArrayp) { free(myCharArrayp); } 这行得通吗,还是我将以某种方式仅释放指针的副本(myCharArrayp),而不 ..
发布时间:2020-05-28 22:36:56 其他开发

free()无效的指针

我得到了熟悉的free():无效的指针错误.在尝试调试时,我最终逐一注释掉了代码中的每个free(),直到没有剩余的代码为止,并且仍然出现运行时错误.还有其他人遇到类似的问题吗? 顺便说一句-我很难使用gdb进行调试,因为在打印错误消息时,整个服务器实际上并没有崩溃,而只是处理单个客户端的特定分叉进程. 谢谢. ============================== *** ..
发布时间:2020-05-28 21:35:47 其他开发

调用delete []之后,仍可以访问C ++指针数组

在下面的代码中,调用一次delete[]释放new分配的内存.但是,在调用delete[]之后,仍然可以访问数组元素.我两次调用delete[]来确认我遇到了double free or corruption错误,这意味着内存已释放.如果释放了内存,我如何访问数组元素?如果我将类似密码的内容读入堆中,这是否可能是一个可以利用的安全性问题? int *foo; foo = new int[10 ..
发布时间:2020-05-28 21:29:51 C/C++开发

如何检查指针是否已在C中释放?

我想检查指针是否已经释放.如何使用gnu编译器集执行此操作? 解决方案 您不能.跟踪它的方法是在释放指针后将其分配给0或NULL.但是,正如弗雷德·拉尔森(Fred Larson)所述,这对指向同一位置的其他指针没有任何作用. int* ptr = (int*)malloc(sizeof(int)); free(ptr); ptr = NULL; ..
发布时间:2020-05-28 21:23:09 其他开发

C free()如何工作?

可能重复: malloc()和free()如何工作 #include #include int * alloc() { int *p = (int *)calloc(5,4); printf("%d\n",p); return p; } int main() { int *p = alloc(); free(p); ..
发布时间:2020-05-08 22:03:13 其他开发

从C中的链接列表释放内存

我一直试图释放加载到链表中的文件的分配内存,我设法释放了节点,但是我不知道如何释放文件的值副本的分配内存. 我已经尝试过类似的事情: void FreeString(struct node * newNode) { for (int i = 0; i string); } } 但是编译 ..
发布时间:2020-05-08 21:19:25 其他开发

C-释放的指针未分配

我试图从分配给malloc()的向量中释放分配给我的指针,当我尝试删除第一个元素(索引[0])时,当我尝试删除第二个元素(索引[ 1])我收到此错误: malloc: *** error for object 0x100200218: pointer being freed was not allocated 代码: table->t = malloc (sizeof (entry ..
发布时间:2020-05-08 20:08:23 其他开发

释放struct内部的struct数组

我有两个结构 struct obj_t { int id; float x; float y; }; struct cluster_t { int size; int capacity; struct obj_t *obj; }; 如您所见,在cluster_t 中有指向第一个obj_t的指针 我要做的是从cluster_t内部的数组 ..
发布时间:2020-05-08 19:58:23 其他开发

C free()例程和递增的数组指针

如果我动态分配一个数组然后传递(不是初始指针,而是指向数组中间的指针),free()例程会工作吗?示例: int* array = malloc(10 * sizeof *array); if(array) { array += 5; // adjusting the indicies free(array); } 还是在调用free()之前需要将指针设置回数组的开头? ..
发布时间:2020-05-08 19:16:26 其他开发