memory-management相关内容

从C ++返回动态分配的内存为C

我有一个DLL,它必须是从C等可用,所以我不能使用字符串对象等作为一个正常的可以,但我不知道如何做到这一点安全。 为const char * GetString的() { 的std :: stringstream的SS; SS<< “随机数是:”&所述;&下; RAND(); 返回ss.str()c_str()。 } 可以在C字符串来当SS脱落堆栈破坏?我 ..
发布时间:2016-08-18 22:48:38 C/C++开发

字符串里面的功能:自动变量或堆中分配的?

我们是用在函数内部的自动变量的字符串?或者,他们是我们必须手工释放堆分配? 我已经喜欢code的情况如下图所示,其中我指定一个字串类(标记为在code ONE)的私人领域,很久以后我的程序检索它和使用它(标示为二)。我是否分配在堆栈中的一个字段的一个变量?在code可被引用到一个悬摆指针在这种情况下工作,因为该方案是足够小? 我编译并运行它,它工作得很好,但我有我的地方我指定字符串像这样的类的 ..
发布时间:2016-08-18 22:48:12 C/C++开发

在嵌入式应用程序内存管理资源

如何我应该在关键任务嵌入式应用管理内存? 我发现了与谷歌的一些文章,但不能确定的一个真正有用的实用指南。 的 DO-178B 禁止动态内存分配,但你将如何管理内存呢? preallocate一切都事先并发送一个指向需要分配每个功能?它分配在堆栈上?使用一个全局静态分配器(但它非常类似于动态分配)? 答案可以是常规的答案,参考资源,或引用,例如良好的开源嵌入式系统的形式。 澄清:这里的问题是 ..
发布时间:2016-08-18 22:45:50 C/C++

如何确定一个进程"虚拟大小" (操作系统)?

我有一个需要大量内存的程序,并尽快达到2GB的虚拟地址空间崩溃。 Sysinternals的进程资源管理器显示此“虚拟大小”一栏。 我怎么能确定这个“虚拟大小”与C(或C ++)code? 好吧,我要查询“虚拟字节”性能计数器。性能监视器显示了查询字符串(或它是如何调用),例如,'\\过程(火狐)\\此Virtuelle GROSSE“我的德国Win XP的安装。 我如何确定为'当前进程'的 ..
发布时间:2016-08-18 22:42:09 C/C++开发

我如何用C释放内存?

我在写code里面有很多的1安培; 2维数组。我得到“错误:无法分配区”,我认为它是因为太多的内存分配。我用“的malloc”和“自由”的功能,但我不知道我使用他们correclyt。也许你知道我在哪里可以看到C对内存管理的好例子? 所以..我只是试图让一种算法工作,现在这个code只是发挥功能后.. 对于一维数组 //内存分配 缓冲=的malloc(NUM_ITEMS *的sizeof(双 ..
发布时间:2016-08-18 22:36:15 C/C++

为什么的malloc()或新从未返回NULL?

我描述了他我在写这需要大量的内存用于高速缓存目的的应用href=\"http://stackoverflow.com/questions/16641932/dynamical-memory-allocation-making-use-of-unused-memory\">here.现在我玩弄一些的malloc /新建筑要弄清楚我怎么能意识到这一点。我做了一个奇怪的观察: 的#include&LT ..
发布时间:2016-08-18 22:36:10 C/C++开发

使用的realloc与自由之间的差异 - >的malloc函数

为什么一个会用realloc()的函数来调整一个动态分配的数组,而不是使用free()函数再次调用malloc的()函数(即利弊,优势劣势对比等)之前?这对C语言编程,但我不能找到合适的标签吧。先谢谢了。 解决方案 的优点是,下realloc将preserve存储器中的内容。随着免费+的malloc你需要在数组中的数据重置。 ..
发布时间:2016-08-18 22:33:27 C/C++

的malloc分配内存比RAM更

我只是执行的,在一个12 MB的计算机mallocs 13 MB的程序(QEMU模拟!)。不仅如此,我甚至通过记忆浏览,并在其中填满垃圾...... 无效 large_mem(无效) { #定义LONGMEM 13631488 长长* PTR =(长长*)malloc的(LONGMEM); 长长的我; 如果(!PTR){ 的printf(“%S():大小%LLD数组分配 ..
发布时间:2016-08-18 22:32:02 C/C++开发

如何实现在C可变长度“string'-Y

我GOOGLE了不少,但我不能找到如何可变长度的字符串在高级语言普遍实行的信息。我创造我自己的这种语言,我不知道从哪里开始的字符串。 我有一个描述的 string类型的结构体,然后是分配这样的“字符串'一个创建功能 / *一个更安全'的strcpy()`,`使用函数strncpy()`和`的sizeof()`* / #定义STRCPY(TO,FROM)\\ 函数strncpy(TO,FR ..
发布时间:2016-08-18 22:22:27 C/C++

怎么看在运行时我在C程序的内存布局?

我想看看我的C程序的内存布局,这样我可以在运行时就像在BSS或堆改变为前实际理解记忆的所有不同的细分? 解决方案 在Linux中,进程的PID,看看 / proc /进程/图和 / proc /进程/ smaps pseudofiles。 (这个过程本身可以使用的/ proc /自/图和的/ proc /自/ smaps ) 它们的内容都记录在人5 PROC 。 这里是你怎么可能读到的 ..
发布时间:2016-08-18 22:17:30 服务器开发

Linux下C程序耗尽内存

我想编写一个程序来消耗所有可用内存,了解的结果。我听说linux的启动查杀过程中,一旦无法分配内存。 谁能帮我这样一个程序。 我写了下面的,但记忆似乎并没有得到疲惫: 的#include<&stdlib.h中GT;诠释的main() { 而(1) { 的malloc(1024 * 1024); } ..
发布时间:2016-08-18 22:13:04 服务器开发

C:指针的指针数组结构(分配/释放的问题)

我已经得到回成C的东西,但我有很难记住这在很大程度上内存管理是如何工作的。我想有一个指向指针数组结构。 说我有: 结构测试{ int数据; }; 然后数组:结构测试**数组1; 这是正确的?我的问题正在与这件事情。所以阵列中的每个指针指向被单独分配的东西。但我想我需要做的这第一: ARRAY1 =的malloc(MAX *的sizeof(结构测试*)); 我无法理解之上。我需 ..
发布时间:2016-08-18 22:01:55 C/C++

什么是存储在堆,什么是存储在堆栈?

任何人都可以解释清楚,在C,C ++和Java的条款。 那张叠什么都,什么都去堆,并分配完成后。 据我所知, 所有的局部变量是否原语,指针或引用变量每次函数调用是一个新的堆栈帧。 和新的或创建的malloc任何事情都会发生堆。 我感到困惑的一些事情。 是引用/图元这些都对堆上创建的对象的成员也存储在堆中? 和有关在每个帧递归创建的方法的那些本地成员什么。 他们都是在栈上,如果是,则 ..
发布时间:2016-08-18 22:01:45 Java开发

为什么`free`用C不采取的字节数被释放?

只是要清楚:我知道,的malloc 和免费在C库中,这通常被实现从OS分配的存储器大块,并没有其自身的管理,以包裹出小批量的存储器的应用和跟踪分配的字节的数目。这个问题是不是如何免费知道多少自由 相反,我想知道为什么免费作出这样摆在首位。作为一个低层次的语言,我觉得这是完全合理的要求C程序员跟踪不仅被分配什么样的内存,但有多少(其实,我经常发现,我最终保留的字节数的轨道反正malloced)。这 ..
发布时间:2016-08-18 21:59:45 C/C++

斯坦福大学的教程和海湾合作委员会之间的冲突

根据这个电影(约38分钟),如果我有两个函数具有相同的本地变量,他们将使用相同​​的空间。所以,下面的程序,应该打印 5 。与 GCC 结果编译它 -1218960859 。为什么? 程序: 的#include<&stdio.h中GT;无效A() { int类型的; 的printf(“%i”的一个); }无效B() { int类型的; 1 = 5; }诠释 ..
发布时间:2016-08-18 21:56:41 C/C++

的malloc在C结构和指针

假设我想定义的载体的结构重新presenting长度和值: 结构向量{ 双* X; INT N; }; 现在,假设我要定义一个向量y,并为其分配内存。结构向量* Y =(结构向量*)malloc的(的sizeof(结构向量)); 我的搜索在互联网上节目,我应该单独分配内存对于x Y-GT; X =(双*)malloc的(10 * sizeof的(双)); 不过,似乎 ..
发布时间:2016-08-18 21:54:08 C/C++

&是什么QUOT;内存在编译时&QUOT分配;究竟意味着什么?

在像C和C ++编程语言,人们经常提到静态和动态内存分配。我理解的概念,但“在编译时所有的内存被分配(保留)”一词总是混淆了我。 编辑,我的理解是,高级别C / C ++ code转换成机器语言,并输出一个可执行文件。如何内存在编译的文件“分配”?是不是记忆总是与所有虚拟内存管理的东西RAM分配呢? 是不是内存分配定义一个运行时的概念? 如果我做一个1KB静态分配的变量在我的C / C ++ ..
发布时间:2016-08-18 21:52:50 C/C++开发

获得启动和程序段的C / C ++结束

我需要得到启动和下面的过程段的结束地址:code,数据,堆栈环境。我理解它是如何位于内存中,但不知道如何使用API​​调用或别的东西来得到它。我已经找到了如何让使用此code一些细分的启动 的#include<&stdio.h中GT;INT temp_data = 100; 静态INT temp_bss;无效print_addr(无效) { INT local_var = ..
发布时间:2016-08-18 15:21:40 服务器开发