malloc相关内容

malloc 在 C 中可以有多大?

我在 C 中有一个 malloc,它是 26901^2*sizeof(double) 这让我想到这里最大的价值是多少? 另外,我在定义一个宏来访问这个二维数组时会遇到什么问题吗? #define DN(i,j) ((int)i * ny + (int)j) 因为这似乎对我不起作用 - 或者我至少不确定它是否有效.我不知道如何在宏上进行全视图潜水以告诉我 A[DN(indx,jnd ..
发布时间:2022-01-11 19:22:28 其他开发

malloc 未定义

我目前正在重写一个链表模块,我收到了一些奇怪的错误. 在两个 IDE(Netbeans 和 Visual Studio Express)中,我收到一个警告,提示 malloc 未定义,并且在我的linkedlist.c 文件中找到的函数也未定义. 以下是我的 3 个文件. main.c #include #include #include ..
发布时间:2022-01-11 16:55:51 其他开发

当内核使用过度使用内存时,是否需要在分配内存后检查 NULL

通常的做法是在 malloc() 之后检查 NULL(内存是否分配成功),例如 void *ptr = malloc(10);如果(ptr!= NULL){//做一些有用的事情} 别的 {//没有内存.安全返回/扔...} 在内核中启用内存过量使用后,是否有机会获得 NULL?我应该遵循虔诚地检查每个分配的 NULL 的做法吗?尽管有积极的过度使用机制,malloc 会返回 NULL(我猜值为 ..
发布时间:2022-01-11 00:00:38 其他开发

CUDA 中 Malloc 函数的效率

我正在尝试将一些 CPU 代码移植到 CUDA.我的 CUDA 卡是基于 Fermi 架构的,因此我可以使用设备中的 malloc() 函数来动态分配内存,并且不需要对原始代码进行大量更改.(malloc() 函数在我的代码中被多次调用.)我的问题是这个 malloc 函数是否足够高效,或者我们应该尽可能避免使用它.我在 CUDA 上运行我的代码并没有得到太多的加速,我怀疑这是由于使用了 mall ..
发布时间:2022-01-10 15:58:13 其他开发

使用 cudamalloc().为什么是双指针?

我目前正在浏览 http://code.google.com/p/stanford 上的教程示例-cs193g-sp2010/ 来学习 CUDA.下面给出了演示 __global__ 函数的代码.它只是创建了两个数组,一个在 CPU 上,一个在 GPU 上,用数字 7 填充 GPU 数组并将 GPU 数组数据复制到 CPU 数组中. #include #include ..
发布时间:2022-01-10 15:19:48 其他开发

C 链表 valgrind 大小读取无效

我的链接列表和 valgrind 输出有问题.不用多说了,这里是我的链表: typedef struct Map map;结构映射{无效 *地址;双空闲时间;地图*下一个;}*地图列表; 列表是使用虚拟头节点创建的.如您所见,该结构体包含一个地址和一个空闲时间,我尝试将它们关联起来. 在find_and_free 函数中,我使用时间搜索此列表,如果此时间小于列表中存储的时间,则取消分配保 ..
发布时间:2022-01-01 18:30:39 其他开发

C 通用链表

我有一个包含 void* 类型数据的通用链表我试图用类型 struct employee 填充我的列表,最终我也想销毁对象 struct employee. 考虑这个通用链表头文件(我已经用 char* 类型对其进行了测试): struct accListNode//任意数据类型链表的节点{无效*数据;//指向任何数据类型的通用指针struct accListNode *next;//列表 ..
发布时间:2022-01-01 18:20:57 其他开发

LinkedList - 如何释放使用 malloc 分配的内存

我有一个非常简单的 C 代码来构造一个单链表,如下所示,其中我使用 malloc 为每个节点动态分配内存.在代码的最后,我想为每个分配的节点释放内存,想知道如何去做 - 如果我首先从头节点开始并释放它,那么指向后续节点的指针就会丢失并且会发生内存泄漏. 另一种方法是从头节点开始,将节点指针继续存储在一个单独的指针数组中,在存储节点指针的同时遍历列表直到尾指针,一旦到达尾节点,也将其存储到其他 ..
发布时间:2022-01-01 18:18:11 其他开发

C 中没有 malloc 的链表

#include typedef 结构节点{国际我;结构节点*下一个;}节点;节点 getnode(int a){结构节点 n;n.i=a;n.next=NULL;返回 n;}主要的(){国际我;节点 newtemp,root,temp;scanf("%d",&i);根=getnode(i);温度=根;当我 - ){newtemp=getnode(i);temp.next=&newtemp;如果( ..
发布时间:2022-01-01 18:12:33 其他开发

类型转换 malloc C++

我有一些带有 malloc 语句的 C 代码,我想与一些 C++ 代码合并. 我想知道何时以及为什么需要在 C++ 中对 malloc 调用进行类型转换? 例如: char *str = (char*)malloc(strlen(argv[1]) * sizeof(char)); 解决方案 何时以及为什么需要在 C++ 中对 malloc 调用进行类型转换? 总是在不分 ..
发布时间:2021-12-31 22:06:09 C/C++开发

malloc 中是否需要类型转换?

在 malloc 中 typecast 有什么用?如果我不在 malloc 中编写类型转换,那么它将返回什么?(为什么在 malloc 中需要类型转换?) 解决方案 我猜你的意思是这样的: int *iptr = (int*)malloc(/* something */); 在 C 中,您不必(也不应该)从 malloc 转换返回指针.它是一个 void * 并且在 C 中,它 ..
发布时间:2021-12-31 21:51:10 其他开发

内存破坏错误

我有一小段代码.我用 -lmcheck 编译它,因为我正在尝试调试一个代码,但我有同样的类似错误. 运行此代码时出现此错误: 内存在分配块之前被破坏 谁能解释一下为什么 free(ptr) 会抛出这个错误? 我还能如何释放指针? 谢谢. #include #include #include #include #define LEN 5int main(int argc, c ..
发布时间:2021-12-31 08:16:26 其他开发

C - 检查当前可用的可用 RAM?

我知道如何使用 malloc() 和 free() 来分配内存,但是是否也有一个标准的 C 函数来检查剩余多少内存,所以我可以定期调用它以确保我的代码没有内存泄漏? 我唯一能想到的就是在无限循环中调用 malloc(1) 直到它返回错误,但不应该有更有效的方法吗? 解决方案 不,没有标准的 C 函数可以做到这一点.您可以使用一些特定于平台的函数来执行某些类型的查询(例如工作集大小), ..
发布时间:2021-12-31 08:08:50 其他开发

openmp 是否分配内存并在之后全部释放

openmp 是否分配内存并释放所有内存?因为我运行了 valgrind,并且释放了我所有的列表.我 malloc 的所有东西都释放了. ==11442== HEAP 摘要:==11442== 退出时正在使用:1 个块中的 192 个字节==11442== 总堆使用量:2,001 次分配,2,000 次释放,已分配 2,917,280 字节==11442====11442== 泄漏摘要:==11 ..
发布时间:2021-12-31 00:09:50 其他开发