memory-management相关内容

MPI矩阵乘法与动态分配:赛格。故障

我在的openmpi制作matriz乘法程序,我得到这个错误信息: [机甲利伯塔:12337 ***处理接收到的信号*** [机甲利伯塔:12337]信号:分段故障(11) [机甲利伯塔:12337]信号code:地址没有被映射(1) [机甲利伯塔:12337]失败地址:0xbfe4f000 -------------------------------------------------- ..
发布时间:2016-08-21 21:52:52 C/C++

指针静态变量的不便

我经常使用便利的函数返回指向静态缓冲区是这样的: 的char * P(INT X){ 静态焦炭资源[512]; 的snprintf(RES,sizeof的(RES)-1“号为%d”,X)); 返回水库; } 和使用他们所有的地方作为参数传递给其他功能: ... some_func(somearg,第(6)); .... 不过,这种“方便”,除了有不是线程安全的一个恼人 ..
发布时间:2016-08-21 21:44:50 C/C++

静态C字符串分配问题

考虑以下code: 的char *海峡=“Hello World”的; 的memcpy(STR,“复制\\ 0”,5); 在memcpy的过程中出现分段错误。但是,使用此code:字符海峡[12]; 的memcpy(STR,的“Hello World \\ 0”,12); 的memcpy(STR,“复制\\ 0”,5); 该程序不会产生分段错误。 问题是否从堆栈与数据部分的分配内存出现? ..
发布时间:2016-08-21 21:39:43 C/C++

如何找到多少内存由malloc调用实际上是用了?

如果我称之为: 的char * myChar =(字符*)malloc的(的sizeof(字符)); 我可能会使用的内存超过1个字节是,因为的malloc很可能利用自身的一些内存来跟踪空闲块的堆是,它可以有效地花费我通过始终对准分配一些内存沿着一定的界限。 我的问题是,:有没有办法找出多少内存由一个特定的的malloc 调用,包括有效真的用完调整成本,并通过的malloc / 免费?用于 ..
发布时间:2016-08-21 21:33:00 C/C++

需要一个工具来检测C code内存泄漏

是否有一个良好的应用程序(即具有某种图形用户界面)在C code检测内存泄漏。我真的想测试我的任务/项目,但被很新的这一点,我使用的终端做的事情纠缠,尤其是用gdb进行调试(对我来说,感觉就像从过去,在那里我可以使用一些爆炸可视化调试器)。 感谢您的帮助。 编辑:平台并不重要 - 我运行的一切;) 解决方案 根据不同的平台(你不提它) Valgrind的是梦幻般的在Linux系统上。它 ..
发布时间:2016-08-21 21:19:33 C/C++

调试内存损坏

早些时候,我遇到了一个问题,在C动态内存(视觉工作室)。 我有一个或多或少的工作程序释放缓冲区之一时扔了运行时错误。这是一个明确的内存损坏,程序写了缓冲区的末尾。 我的问题是,这是非常费时追查。该错误是在损坏后一路下跌扔了,我不得不手动调试整个运行发现时的缓冲区结束改写。 是否有任何工具\\方式来协助追查这个问题?如果该程序会马上崩溃我早就发现了这个问题快了很多...... 问题的例子: ..
发布时间:2016-08-21 21:18:34 C/C++

如何将一个整数数组复制到另一个

什么是复制一个整数数组的最佳方式?我知道的memcpy()就是做这件事。有没有像的strdup()?任何函数 解决方案 有没有,而的strdup 不在标准,无论是。你当然可以只写你自己的: 为int * intdup(INT常量* SRC,为size_t LEN) { 为int * p =的malloc(LEN *的sizeof(INT)); 的memcpy(P,SRC,LE ..
发布时间:2016-08-21 21:11:09 C/C++

如何声明和在C使用1十亿巨额的整数数组?

我执行一个顺序程序进行排序像快速排序。我想在一个巨大的1或10亿元整数数组来测试我的程序的性能。 但问题是,我得到的分割误差,由于该阵列的大小。 这个数组的声明的样本code: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&time.h中GT; #定义ñ10亿INT主(INT ARGC,字符** argv的) { INT列表 ..
发布时间:2016-08-21 21:08:57 C/C++

页面错误陷阱成本

我有一个应用程序,它会定期(每经过1或2秒)通过派生本身需要检查点。因此,检查点是原来的进程,直到它被要求时,在原来的过程中的一些错误发生时要启动的只是停留闲置的一个分支。 现在我的问题是如何昂贵的是叉的写入时复制机制。多少页故障陷阱,将(以一个检查点是后第一次)只要原来的进程写入到一个内存页发生的费用,如写入时复制机制将确保它给人的最初的过程不同的物理页面超过检查点。 在我看来,页面错误陷阱 ..
发布时间:2016-08-21 21:08:44 服务器开发

如何从结构页面获取相关数据的物理地址?

比方说,我们已经有了一个结构页从页面缓存的文件的地址空间。 我们怎样才能从这个结构页 4KB的数据的起始物理地址? 我想应该是这样的数据在结构的sk_buff 的指针,但我没有找到它 修改 由于垫子和llya的答案。 在看答案后,我想第一个问题是确定是否结构页位于 ZONE_NORMAL 或 ZONE_HIGHMEM 。 在一个文件I / O,当我们没有找到缓存的页面,我们将首先使用分 ..
发布时间:2016-08-21 21:07:51 服务器开发

有什么可以在通话中解释堆损坏给free()?

我一直在调试,现在天大跌,与维护者的这里)。我花了一些时间来调查,所以我会尽力使这个问题有趣和翔实。 第一,给予一定的情况下,我国重现崩溃最小样本情况如下: 的#include<的OpenSSL / crypto.h> #包括LT&;的OpenSSL / ec.h> #包括LT&;的OpenSSL / objects.h> #包括LT&;的OpenSSL / pem.h ..
发布时间:2016-08-21 20:54:06 C/C++开发

什么是采用caddr_t的意义,它是使用时?

有人能告诉我: 什么是采用caddr_t ? 当使用它? 如何不同于无效* ? 何时使用无效* ,何时使用采用caddr_t ? 先谢谢了。 解决方案 采用caddr_t 是一些低级别的呼叫如 MMAP相关的传统BSD类型,它不应该在现代code使用。它是由POSIX标准拒绝。标准化 MMAP 使用无效* 。 ..
发布时间:2016-08-21 20:52:53 服务器开发

在Linux / Windows的C / C ++内存使用API

我想获得每两个全流程和系统内存使用信息。在Windows中,它是pretty容易。 GetProcessMemoryInfo和GlobalMemoryStatusEx很大,很容易做这些工作。例如,GetProcessMemoryInfo给出给定的过程的“PeakWorkingSetSize”。 GlobalMemoryStatusEx返回系统范围内的可用内存。 不过,我需要做的是在Linux上。 ..
发布时间:2016-08-21 20:38:58 服务器开发

你怎么能这样做C ++时,您的嵌入式编译器不具备运营商新的或STL支持?

我正在为我的大学一批资深的项目,我所遇到的主要障碍在试图让我的code工作。 这是我们为我们的8位微控制器爱特梅尔不支持新的或delete操作符,它不支持C ++ STL的编译器。我可以用C编程它,但我要实现A *算法,我从来没有做过的事情。虽然我已经试过ç最初我很快意识到,我从来没有以前那样纯C。试图模型结构和功能的对象正在放缓我失望,因为我太习惯了干净多了C ++的语法。 但无论如何,我的 ..
发布时间:2016-08-21 20:36:45 C/C++开发

一个可执行的C程序中的段

我读到有关章节和片段。看来你可以列出节和段之间的映射关系如下图所示。 $ readelf -l测试ELF文件类型是EXEC(可执行文件) 切入点0x8048330 有9个程序头,起始偏移52程序头: 型胶印VirtAddr PhysAddr FileSiz MemSiz FLG对齐 PHDR 0x000034 0x08048034 0x08048034 0x00120 0x00120ř ..
发布时间:2016-08-21 20:29:29 服务器开发

在C内存池的实现

我要寻找一个在C良好的内存池的实现。 它应该包括以下内容: 防碎片。 是超级快:) 能够“捆绑”,从不同规模划分几个在一些标识,并删除所有分配给定的标识符。 线程安全 解决方案 我觉得优秀的 talloc ,发展成为桑巴舞的一部分,可能是你在找什么。我觉得最有趣的部分是从talloc返回的指针是一个有效的存储环境。他们的例子是: 结构美孚* X = talloc(mem_c ..
发布时间:2016-08-21 20:27:32 C/C++

的malloc在嵌入式系统中没有一个操作系统

此查询使用关于内存分配的malloc 。 通常我们说的是的malloc 从堆中分配内存。 现在说我有一个普通的嵌入式系统(无操作系统),我有正常的程序加载在那里我做的malloc 在我的计划。 在此情况下是从内存?分配 解决方案 的malloc()是通常由运行时库实现的功能。你是对的,如果你是在一个操作系统上运行,那么的malloc有时(但不是每次)触发一个系统调用,使操作系统映射一 ..
发布时间:2016-08-21 20:24:23 C/C++