malloc相关内容

可变大小的数组VS用C释放calloc

在这里的动态内存的讨论:“介绍到C指针和动态内存” 笔者指出: 像这样的存储器块可有效地用作一个更灵活的阵列。这种方法实际上是更常见在真实世界的C程序。它也更predictable和灵活多了一个“可变大小的数组” 类型的内存块,他是在谈论的是这样: const int的大小= 5; 为int *阵列=释放calloc(大小,sizeof的(INT)); ,然后用另一个指针来遍 ..
发布时间:2016-05-30 22:42:06 其他开发

在malloc的C,而是用多维数组语法

有没有办法到malloc的大阵,而是指它与2D语法?我想是这样的: 为int *内存=(INT *)malloc的(的sizeof(int)的* 400 * 200); INT MAGICVAR = ...; MAGICVAR [20] [10] = 3; //设置(200 * 20 + 10)个元素 更新:这是必须提到:我只是想有一个内存连续块。我只是不想写这样一个宏:的#define ..
发布时间:2016-05-30 22:30:14 其他开发

获取一个malloc的大小只与返回的指针

我希望能够让我创建一​​个这样的改变我的数组的大小: 为int *阵列; 阵列=的malloc(sizeof的(INT)* 10); // 10整数元素 ,你通常会,但是当我试图找到像这样大小的我可以用这就像一个数组:尺寸= sizeof的(阵列)/的sizeof(int);在 我得到的答案1,因为它不承认为指向数组 我怎样才能获得数组的大小? (我知道它不是技术上的数组,但有没有制定出 ..
发布时间:2016-05-30 21:57:43 其他开发

申报和malloc的区别

首先,我很抱歉,但我不知道这是一个适当的标题,我不知道该怎么称呼某人时“allocs”记忆像 INT表[N] 所以下跌随意更改标题。 今天我帮助与一些C code我的一个朋友,我发现一些奇怪的行为,我无法解释他为什么发生。我们有TSV文件,整数列表,用int每一行。第一行是行列表具有的数目。 我们也有一个非常简单的“ReadFile的”C文件。第一行读取到n,行数,则出现了一个初始化 IN ..
发布时间:2016-05-30 21:25:45 其他开发

使用malloc与不同的行长度多维数组分配

我有如下的 C code: 为int *一个; 为size_t大小= 2000 * sizeof的(INT); A =(INT *)malloc的(大小); 这工作正常。但是,如果我有以下几点:的char ** B =的malloc(2000 * sizeof的* B); 其中,b 的每一个元素都有不同的长度。 这怎么可能做到为同样的事情b 为我做了 A ;即以下code将举行是否正确 ..
发布时间:2016-05-30 21:12:21 其他开发

非8字节对齐的内存访问会导致内存访问冲突在iPhone 3GS与iOS 4.0

考虑下面的Objective-C ++的iPhone程序(TestMemAppDelegate.mm)。它崩溃与iPhone(3GS与iOS 4.0)的EXC_BAD_ACCESS。它在模拟器工作正常。这显然​​是一个内存对齐的东西,因为它适用于iPhone的罚款,如果在“数据A”结构上的8字节边界开始。 任何人能解释的原因是什么?它说的是与ARM架构? ARM编译器? @implement ..
发布时间:2016-05-29 14:51:42 移动开发

什么是用C最严格的类型是什么意思?

这本书的 C程序设计语言的关于“最严格的类型”,在8.7节的会谈,例— A存储分配器的: 虽然机器有所不同,每台机器有一个最严格的 输入:如果最严格的类型可存储在特定 地址,所有其他类型可也。在一些机器上,最 限制性类型是双击;对他人, INT 或长就足够了。 在其code时,联盟 头使用类型对齐长。 什么是最严格的类型是什么意思?它是也许是最大的类型(例如,双击) ..
发布时间:2016-05-28 11:02:26 其他开发

C API的设计:谁应该分配?

什么是正确的/ preferred在一个C API分配内存的方式? 我可以看到,起初,两个选项: 1)让主叫方做所有的(外)内存处理: MYSTRUCT * S =的malloc(sizeof的(S)); myStruct_init(多个);myStruct_foo(多个);myStruct_destroy(多个); 免费(S); 的 _init 和 _destroy 功能是必要的,因 ..
发布时间:2016-05-22 20:47:01 其他开发

是否需要分配内存后检查NULL,当​​内核使用过量内存

这是一般的做法一个malloc(后检查NULL(内存是否成功分配)),有的东西一样 无效* PTR =的malloc(10); 如果(PTR!= NULL){ //做一些有用的事 }其他{ //没有记忆。安全返回/扔... } 在内核中启用内存过量使用,有没有得到NULL的机会吗?我应该遵循宗教NULL检查每个分配的做法?会的malloc aggresive过量机制返回NULL ins ..
发布时间:2016-03-29 22:47:23 Android

Dalvik的堆大小和堆基地

我不知道我怎么能确定堆基址和堆大小, 我希望能够转储我的应用程序堆, 有没有办法做到这一点? 另外,当我试图读取进程内存映射通过/ proc / PID /地图,我没有看到 在[堆]部分,为什么? 请问DVM分配使用mmap匿名的地区? 如果是的,我怎么可以跟踪他们? 解决方案 在linux的API,你可以使用showmap倾倒堆大小的信息,以及部分的 / ashmem / D ..
发布时间:2016-03-18 00:18:56 移动开发

C ++:为什么`new`需要的?

我有这个简单的类层次结构: 类基地{ 上市: 虚拟INT X()常量= 0; }; 类派生的:公共基础{ INT _x; 上市: 派生(INT X):_x(X){} INT X()const的{返回_x; } }; 如果我用的malloc 分配的衍生的实例,然后尝试访问该多态函数 X ,程序崩溃(我得到一个分段错误): INT主要(){ 衍生 ..
发布时间:2015-11-30 23:30:10 C/C++开发

对齐的内存管理?

我有关于管理对齐的内存块的几个相关问题。跨平台的答案将是理想的。然而,正如我pretty的确定一个跨平台的解决方案是不存在的,我感兴趣的主要是Windows和Linux,并以一(多)较小程度上的Mac OS和FreeBSD。 什么是得到一个内存块16字节边界对齐的最好方法? (我知道使用的malloc(),分配一些额外的空间,然后碰撞指针到一个正确对齐的价值。我希望为琐碎的方法东西少一些杂牌 ..
发布时间:2015-11-30 23:28:04 敏捷开发

有没有什么办法可以改善这一功能,取代了事件的子字符串用另一个字符串中的malloc分配的字符串?

我很新的C,我决定做一个函数调用str_replace函数取代它已使用malloc字符串中的字符串。它似乎工作,但任何人都可以找到任何改进的余地。 任何意见将AP preciated。我想知道如果人们认为找到出现的次数来计算新的字符串大小是一个好主意,如果我使用指针是有道理的。 的#include< stdlib.h中> #包括< string.h中> #包括< ..
发布时间:2015-11-30 22:39:07 C/C++

在C变量大小的数组

在这里的动态内存的讨论:“介绍到C指针和动态内存” 笔者指出: 像这样的存储器块可有效地用作一个更灵活的阵列。这种方法实际上是更常见在真实世界的C程序。它也更predictable和灵活多了一个“可变大小的数组” 内存块,他是在谈论的类型是这样: const int的大小= 5; 为int *数组=释放calloc(大小,sizeof的(INT)); ,然后用另外一个指针来遍 ..
发布时间:2015-11-30 14:31:10 C/C++

64位版本的OSX - 不一致的malloc的错误

我收到了非常不一致的错误在X code: 的malloc:***错误对象0x1041146f8:不正确的校验和释放对象 - 对象被释放后,可能被修改。 ***设置一个断点在malloc_error_break调试 我知道,这不是我的$ C $直接C,因为一个32位版本的工作得很好(建筑设置为标准的32/64和建立有效的体系结构仅设置为NO)。它也偶尔会工作得很好,没有我改变甚至评论,但只 ..
发布时间:2015-11-28 12:02:28 其他开发

64位大mallocs

是什么原因一个malloc()会失败,特别是在64位? 我的具体问题是试图对malloc的RAM一个巨大的10GB块在64位系统。 该机拥有12GB的RAM和32 GB交换的。 是的,malloc的是极端的,但为什么会是一个问题吗?这是Windows XP64与英特尔和MSFT编译器。 malloc的有时成功,有时没有,约50%。 8GB mallocs总是工作,20GB mallocs总是失败 ..
发布时间:2015-11-28 11:49:36 其他开发

而在C中正常化二维数组不正确的值

我试图根据正常化的一对夫妇给定方程的二维数组。该阵列已经被填充值,使用rand()函数从0至255不等。的问题是,我们我正常化阵列,使用几个给定方程组,该归一化值可以是0或者255。 的#include< stdio.h中> #包括< stdlib.h中> #包括< time.h中> 主要 () { INT X,Y; 函数srand(时间(NULL)); I ..
发布时间:2015-11-28 10:53:53 其他开发

构建成功,但有堆corupted。使用2-D阵列

我已经创建了一个2-D数组,但失败,我得到“未处理的异常在0x77a415de在lab10.exe:0xC0000374:堆已损坏”不知道从哪里从这里或如何调试去。我相信这是与我的数组的大小或使用malloc()。非常感谢你的帮助提前! //获取列数从用户 输出(“输入行数和列数:\ N”的); scanf函数(“%D”,与安培;尺寸); //分配一维指针数组,数组'A' A =(INT * ..
发布时间:2015-11-28 10:53:23 其他开发