memory相关内容

动态分配/ 2D&放释放;三维阵列

我了解的算法来分配/释放动态二维数组,但我不是太肯定同为3D阵列。结果 利用这些知识,有点对称性,我想出了以下code。结果 (我有一个很难的3D可视化编码过程中)。 请上的正确性,如果任何意见和建议任何更好的选择(效率明智或直觉)。结果 另外,我觉得这两个二维和三维数组可以像正常一样arr2D [2] [3]和结果静态数组访问 arr3D [2] [3] [2]。对? code为2D ..
发布时间:2016-08-17 22:43:52 C/C++

什么是跳表?

有人能解释一个跳转表的机制和为什么会在嵌入式系统需要? 解决方案 一个跳转表可以是一个指针数组功能或机器code跳转指令的数组。如果你有一个相对静态的功能集(比如系统呼叫或一类的虚函数),那么你可以创建这个表一次,并使用一个简单的索引数组调用的函数。这将意味着检索指针和调用功能或根据所用表的类型跳跃到机器code 在嵌入式编程这样做的好处是: 指数比机器code或指针存取效率更高, ..
发布时间:2016-08-17 22:43:18 C/C++开发

C内存管理

我一直听说,在C你要真看你是如何管理内存。我仍然开始学习C,但迄今为止,我还没有做任何的内存管理相关活动所有..我总是幻想着有释放变量,并做各种丑恶的东西。但是,这似乎并不如此。 有人能告诉我(与code的例子)时,你将不得不做一些“内存管理”的例子吗? 解决方案 有两个地方变量可以把内存中。当你创建一个变量: int类型的; 焦炭℃; 字符D [16]; 该变量在创建了“栈”。 ..
发布时间:2016-08-17 22:33:57 C/C++

与Visual Studio确定堆栈空间

我在Visual Studio 2005编程用C我有一个多线程程序,但在这里,这不是特别重要。 我如何确定(大约)我的线程的堆栈使用多少空间? 我正打算使用的设置堆栈存储器的一些predetermined价值的技术,说0xDEADBEEF,运行程序很长一段时间,暂停该程序,调查堆栈。 我如何阅读和使用Visual Studio写堆栈内存? 编辑:见,例如, 有关嵌入式系统这个问题举行会谈, ..
发布时间:2016-08-17 22:28:35 C/C++

如何确定是否返回的指针是栈或堆在

我有一个插件架构,在那里我调用函数在一个动态库,他们还给我一个的char * 这就是答案,但在以后的阶段中。 这是一个插件功能的签名: 的char *执行(ALLOCATION_BEHAVIOR * free_returned_value,无符号​​整型*长); 其中, ALLOCATION_BEHAVIOR 必须是: DO_NOT_FREE_ME , FREE_ME , DELETE_M ..
发布时间:2016-08-17 22:23:03 C/C++开发

哪里的malloc()/ free()的存储分配尺寸和地址?

在哪里malloc()和free()的存储分配的地址及其大小(Linux的GCC)?我读过一些实现实际分配的内存在什么地方存储它们,但我无法证实,在我的测试。 的背景下,也许有人有另一个提示此: 我尝试一点点,以便确定在其它处理的串的电流值进行分析的过程的堆存储器。 访问过程的堆内存,并通过它漫步是没有问题的。然而,由于该串的值更改和过程中的每个时间分配存储器的一个新的部分,该字符串的地址变 ..
发布时间:2016-08-17 22:23:01 C/C++

什么是一个连续的内存块?

就像在标题,什么是一个连续的内存块? 解决方案 一个没有在它占据的地址没有任何间隙。你可能只认为这是一个“块”,而在中间的“两大块。”差距想起了什么 的术语以阵列的定义上来为“连续的”。这意味着元件被布置端至端,没有不连续性和它们之间没有填充(有可能​​是各元件内部填充,但不是元件之间)。因此5 4个字节元素的数组看起来像这样(每字节1下划线时,|符号不重新present内存): _ ..
发布时间:2016-08-17 22:22:50 C/C++

在C-结构的内存对齐

我工作的32位计算机上,所以我想,内存对齐应该是4个字节。说我有结构: typedef结构{ 无符号短V1; 无符号短V2; 无符号短V3; } MYSTRUCT; 真正的大小为6个字节,我想这对齐大小应为8,但的sizeof(MYSTRUCT)返回我6。 但是,如果我写的: typedef结构{ 无符号短V1; 无符号短V2; 无符号短V3 ..
发布时间:2016-08-17 22:17:01 C/C++开发

请问这个方案的工作?

的#include<&stdio.h中GT;诠释主(){ 浮动= 1234.5f; 的printf(“%d个\\ N”,一); 返回0; } 它显示一个 0 !这怎么可能?什么是道理? 我特意放了%d个在的printf 语句学习的printf 。 解决方案 这是因为%d个预计的 INT 但您提供一个float。 使用%E / %F / %G 打印浮动。 在 ..
发布时间:2016-08-17 22:14:55 C/C++开发

为什么编译器允许字符串不为const?

在哪里是在完全相同的内存文字? (见下面的例子) 我不能修改文字,所以它会被认为一个const char *,但是编译器让我用它一个char *,我没有警告,甚至与大多数编译器标志。 而一个const char *类型为char *类型的隐式转换给了我一个警告,见下文(GCC上进行测试,但它VC ++ 2010年类似的行为)。 另外,如果我修改一个const char的值(下面,如果GCC会 ..
发布时间:2016-08-17 22:08:24 C/C++开发

多线程内存分配器的C / C ++

我公司目前拥有大量多线程服务器应用程序,我正在挑选一种良好的多线程内存分配器。 到目前为止,我左右为难: Sun的umem 谷歌的tcmalloc 英特尔线程构建模块分配器 埃默里Berger的囤 从我发现囤积可能是最快的,但我没有听说过今天之前,所以我怀疑,如果它真的好,因为它看起来。任何人都有亲身经历尝试这些分配程序? 解决方案 我用tcmalloc和阅读有关囤积居 ..
发布时间:2016-08-17 21:56:09 C/C++开发

会`char`永远永远永远有8位?

我一直认为: 一个字符重新$ P $由一个字节psented, 一个字节总是在计数有8位, 是的sizeof(char)的总是 1 , 和内存的最大理论量我可以分配(计入字符 s)是RAM(+交换空间)的字节数。 但现在,我读过关于我不那么肯定了该字节的维基百科条目。 我的哪个假设之一(s)是错的?哪一个(s)是危险的? 解决方案 是字符和字节是pretty大同小异 ..
发布时间:2016-08-17 21:51:43 C/C++

什么是分段错误和堆栈溢出的区别?

例如,当我们称说,递归功能,连续调用被存储在堆栈中。然而,由于一个错误,如果它继续无限的错误是“分段错”(如看到GCC)。 难道不应该一直“堆栈溢出”?那么,什么是两者之间的基本区别? 顺便说一句,一个解释是不是维基百科链接(通过该走了,但没有回答具体查询)更有帮助。 解决方案 堆栈溢出是[A]的原因,段错误是结果。 至少在x86和ARM的“栈”是把局部变量和返回函数调用地址保留的一 ..
发布时间:2016-08-17 21:48:53 C/C++

在C,做牙套作为一个堆栈帧?

如果我创建了一个新的大括号内的一个变量,是可变的弹出上右括号堆栈,或者它挂出,直到函数的结束?例如: 无效美孚(){ INT C [100]; { INT D [200]; } // code,它需要一段时间 返回; } 威尔 D 是 code,它需要一段时间节期间占用内存? 解决方案 没有,括号不作为堆栈帧。在C语言中,只有牙套表示一个命名范 ..
发布时间:2016-08-17 21:47:32 C/C++

两个进程之间共享内存(C,Windows中)

由于我还没有找到一个答案的问题问previously这里我尝试了不同的方法。 有什么办法两个进程之间共享内存? 第二个进程会从注入的信息,因为它是一个传统的程序,它不再被支持。 我的想法是注入一些code那里,在我传递给注入程序通过地址(或其他)的地方,我需要运行数据所在的共享内存的结构。一旦我得到了我的数据将填充注射的线程中我自己的变量。 这可能吗? 怎么样? code是AP pre ..
发布时间:2016-08-17 21:37:26 C/C++

如何读/写在C / C任意位++

假设我有一个字节B配11111111二进制值 例如如何做我读开始在第二位3位的整数值或写四个整数位值开始在第五位? 解决方案 2+的一些年后,我问这个问题,我想解释一下我所希望的方式解释它回来时,我还是一个完整的福利局和将是谁想要了解这个过程的人最有利的。 首先,忘记了“11111111”例如价值,这是不是真的那么适合该过程的可视化解释。因此,让我们的初始值是 10111011 (18 ..
发布时间:2016-08-17 21:35:49 C/C++开发