memory-management相关内容

未定义参考posix_memalign使用的mingw32

我使用Debian挤压,交叉编译的Windows使用的目标的mingw32。 有关Linux目标,我可以用posix_memalign分配对齐的存储空间。 我似乎无法找到一个方法来得到这个窗户目标工作;我得到未定义的引用错误。我曾尝试几种不同的功能,但没有成功。 举例code: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&m ..
发布时间:2016-08-22 15:43:06 C/C++

在内存分配限制在Windows +我在这个计算正确?

我在写这需要大量的内存(大图分析)的程序。 目前有两种主要的数据结构在我的节目(占用大部分内存)。它们是: 类型的n * n的矩阵 INT ** 和长度为n的数组,键入节点* 节点,在这种情况下,是一个包含两个整数的结构体(的sizeof(节点) = 8) 对于n,我可以运行我的code最大的值是22900,做了一些计算,我得到: 22900 * 22900 *的sizeof( ..
发布时间:2016-08-22 15:28:39 C/C++

为什么不免费()零出内存之前,释放它?

当我们免费()内存在C,这是为什么不内存以0?有没有保证这个叫发生时作为理所当然的一个很好的方式免费()? 我宁愿不要冒险留下释放回操作系统内存中的敏感数据... 解决方案 释放它需要额外的时间归零时出了内存块。由于大多数的时候居然出现在它不需要它不是默认设置。 如果你真的需要(比如你使用的存储器,用于存储密码或加密密钥) - memset的()释放块之前调用。写一个工具函数链 mem ..
发布时间:2016-08-22 15:21:43 C/C++

分配给元素结构和存储于一体的malloc

我相信这是一个基本的问题,但我一直没能找到这是否是一个合法的内存分配策略与否。我将数据从文件中读取,我在一个结构填充。成员的大小是可变的每次读,所以我的结构元素的指针,像这样 结构data_channel { 字符* chan_name; 字符* chan_type; 字符* chan_units; }; 所以看完我才弄清楚每个字符串的大小是这样我就可以分配给他们的记 ..
发布时间:2016-08-22 15:20:58 C/C++

包装的malloc,但只对某些输入文件(对象和lib)的

我需要包装调用MALLOC,从我自己的发球池内存。 但是,只有我自己的目标文件,以及一些外部库。 其他图书馆应该有机会获得真正的malloc。 我使用静态链接,只有静态链接库(.a归档中)。 我用--wrap = malloc的选项为“拦截”调用malloc的,但它使所有code从所有输入文件中使用此的malloc(__wrap_malloc)。 理想的解决办法,如果我可以用--wrap ..
发布时间:2016-08-22 15:20:53 服务器开发

我为什么要传递一个二维数组到C函数时提供的尺寸?

我不知道如果记录标记是相关的,但随时添加。 我想presume的原因是历史的,这就是为什么我认为这一点。 为什么我不能声明函数的签名,如下面的? 无效美孚(INT doubly_indexed_array [] []){ ... } 这使得 $ GCC mem.c mem.c:4:错误:数组类型具有不完整的元素类型 为什么你必须声明的尺寸为下列之一?无效美孚(INT doubly ..
发布时间:2016-08-22 15:18:50 C/C++

在OS X后备内存

什么是等同于Windows的虚拟在OS X?也就是说,我怎么能保留一个连续的地址空间,而无需实际commiting它,然后再提交它的块? 谢谢, 亚历 解决方案 的 ..
发布时间:2016-08-22 15:10:29 C/C++

类似的malloc函数中使用自定义的堆

什么是用C最好的办法,如果我想构建的malloc像一个自定义的pre-分配的堆的功能? 我在这里的具体问题是,我有一个已经被放置到我的地址空间的mmap-能(内存等)的设备,但我需要获得使用该内存来存储将被分配和释放对象的更灵活的方式随着时间的推移。 我知道malloc的,免费的,其他类似功能用于在堆上执行这种分配,但有什么办法可以使用​​由这种功能为它的动态行为提供逻辑,同时提供我自己的地址 ..
发布时间:2016-08-22 15:04:23 服务器开发

每个线程的内存分配

我工作了多线程应用,更特别的是关于内存分配跟踪工具。 我想每个线程的内存分配。我知道,当一个线程做一个malloc,使用的内存全局堆中。我想跟踪的线程分配多少内存。 我做的malloc时的包装,每次有一个malloc为递增值: 无效* mymalloc(为size_t大小){ mem_used [thread_id单] + =大小; 返回的malloc(大小); } 它运 ..
发布时间:2016-08-22 14:57:29 C/C++

获取一个指针的数据的大小

我尝试以下code,以了解如何获取一个指针的数据的大小: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&string.h中GT; 诠释主(){ 字符* test_char_ptr =“这仅仅是一个测试”; 为int * test_int_ptr =(INT *)malloc的(16 * sizeof的(INT)); ..
发布时间:2016-08-22 14:42:51 C/C++

之所以在C C内存泄漏++

是什么在C C的原因,内存泄露++ (除通常的分配内存,却忘了释放它) 解决方案 如果一个异常被分配与释放之间的调高,则会产生内存泄漏。 无效F1(){ 为int * PTR = INT新; //做一些可能会引发异常 //如果我们抛出一个异常从来没有在这里 删除PTR; } 每个时间 F1 终止与异常,4个字节泄露(假设 INT 为4个字节)。 ..
发布时间:2016-08-22 14:15:04 C/C++开发

OpenSSL的:减少内存占用

美好的一天。我们已经写在C ++接受许多SSL / TLS连接的服务器;我们使用boost :: ASIO(所以后端的的OpenSSL )建立SSL。 在mement服务器使用有关的每个连接的内存160-200kbytes,我们要减少这种用法。提高:: ASIO是使用SSL_MODE_RELEASE_BUFFERS标志默认情况下,所以基本的优化已经完成。与播放则将ctx-方式> freel ..
发布时间:2016-08-22 14:12:40 C/C++开发

静态内存分配VS用C动态内存分配的成本

我很有兴趣知道什么是内存分配静态VS动态的preferred方法是良好的性能(例如,运行时间),当你知道了在 C 在 Linux的对象/项目确切的数字。成本要小数量的对象(少量的存储器)和以及用于大量对象的(存储器巨大量)。 例如,A型[N] VS 键入* A =的malloc(sizeof的(类型)* N) 请让我知道。谢谢你。 请注意:我们这个基准,可能知道答案。不过,我想知道,解释这两 ..
发布时间:2016-08-21 22:38:16 服务器开发

是否有堆栈存储器的限制?

我正在经历一个线程。 程序崩溃,因为 它曾宣布一个函数内部的10 ^ 6阵列本地。 报错的原因是内存分配失败堆栈导致崩溃。 在同一阵列全局声明,它的工作好。(在堆内存保存它)。 现在的时刻,让我们假设, 堆栈增长向下和向上堆 我们有: --- ---栈 ------------------- --- HEAP ---- 现在,我认为,如果出现故障的分配堆栈, 它必须对失败也 ..
发布时间:2016-08-21 22:36:35 C/C++

当一个第三方的C函数返回一个指针,你应该自己自由了吗?

有返回指针几乎一定新鲜分配的数据的许多功能(特别是在POSIX库)。他们的联机帮助不说,如果你要释放他们,或者如果有在玩一些不起眼的机制(如指针返回到静态缓冲区,或沿着这些路线的东西)。 例如, INET_NTOA 函数返回一个的char * 最有可能不知从哪里出来,但手册页没有说明它是如何分配的。我结束了使用 inet_ntop ,而不是因为至少我知道在哪里目的地分配来的。 什么是对C函数返 ..
发布时间:2016-08-21 22:34:46 C/C++

jemalloc,MMAP和共享内存?

可以 jemalloc 被修改为共享内存分配? FreeBSD的功能 dallocx() 意味着你可以提供一个指针用于分配,但我没有看到一个明显的方式告诉 jemalloc 来限制来自内存的所有的分配(也不设置大小,等等)。 的 dallocx()函数使通过 PTR 引用的内存提出,要可用于将来的分配。 如果没有,什么是努力为这样的功能水平?我在努力寻找能够从我提供了一个共享的内存部分 ..
发布时间:2016-08-21 22:18:24 C/C++

它是通过一个指针到const的一个很好的做法来释放内存

有很多问题在讨论C和C ++的细节处理指针到const的缺失,即免费()不接受他们,删除和删除[] 做和常量性不prevent对象的破坏。 我感兴趣的是你是否认为这是一个很好的做法,这样做,不是什么语言(C和C ++)允许。 有关指针到const的缺失参数包括: Linus Torvalds公司 kfree(),与C的免费(),需要无效常量* 的说法,因为他认为释放内存,不影响什么指向。 ..
发布时间:2016-08-21 22:16:31 C/C++开发

C程序,指针参数都不会保存值

嗨,大家好我很抱歉把这个打扰您,但我已经开始在这里失去它.. 我最近用C重新开始编程,我遇到了一些错误,只是我想不通.. 我的C程序是(应该是)一个简单的人,所以它需要做到以下几点: 自然元素的未定义数量读取形成键盘,直到0被读取。之后,它必须计算所有元素的乘积,并计算该结果的末尾的0的个数.. INT输入(INT * V){ INT N = 0; 做 { ..
发布时间:2016-08-21 21:58:51 C/C++