码迷,mamicode.com
首页 >  
搜索关键字:calloc malloc c语言    ( 2525个结果
C++ - new与malloc的差别
malloc是C++语言的标准库函数;而new是C++语言中的操作符。new返回指定类型的指针,而且能够自己主动计算所需空间的大小;而malloc必需要由用户自己计算所需空间大小,并在返回后强行转换为实际类型的指针。malloc仅仅管内存分配,不能对所得的内存进行初始化,其所获内存空间中上的值是随机...
分类:编程语言   时间:2014-12-30 18:55:23    阅读次数:124
内存调试——valgrind工具对数组访问错误和内存泄漏的检测
下面的 C 程序分配了1024字节的内存,然后从分配的内存以外的区域读取数据,在分配内存尾部之后写数据,最后将该内存区域变得不可访问。 #include #include int main() { char *ptr = (char *)malloc( 1024 ); char ch; //Uninitialized read ch = ptr[1024];...
分类:编程语言   时间:2014-12-28 18:17:49    阅读次数:387
windows操作系统对于程序运行时堆栈的管理的研究
通过下面的代码得出了一个结论: 在windows操作系统中,栈空间不会释放,而是如果现有的栈空间满足函数的运行,则不再申请新的栈空间,但函数退出后也不释放栈空间;如果函数运行时占空间不够,则需要再申请新的空间; 使用malloc动态申请的空间因为位于堆空间,free后可以直接释放 #include #include int hello1() { int arra[...
分类:Windows程序   时间:2014-12-27 23:08:09    阅读次数:260
CLR 垃圾回收算法
c#相较于c,c++而言,在内存管理上为程序员提供了极大的方便,解放了程序员与内存地址打交道,提高了程序员的工作效率。比如c中分配的malloc堆空间没有释放导致的内存泄露,数组越界导致的踩内存错误,使用了已释放的内存空间错误等等。这些在C#中统统的都不存在,主要是由于clr提供的安全检查机制...
分类:编程语言   时间:2014-12-27 13:50:29    阅读次数:231
STL源码分析--空间配置器的底层实现 (二)
STL源码分析—空间配置器 空间配置器中门道 在STL中的容器里都是使用统一的空间配置器,空间配置器就是管理分配内存和销毁内存的。在STL将在heap空间创建一个对象分为两个步骤,第一是申请一块内存,第二是在这块内存中初始化一个对象。首先申请空间是由malloc提供,初始化一个对象时由constructor管理。销毁一个对象也是由两步骤完成,第一是销毁空间上的对象,第二是释放这块内存。 同时...
分类:其他好文   时间:2014-12-26 16:48:26    阅读次数:119
防止内存泄露
为了防止内存泄露,养成检测内存分配/释放是否成功的良好习惯: 1,动态分配内存的时候检测是否分配成功,如果不成功请返回友好提示~ 2,释放内存的时候将释放后的内存指针指向NULL,以保证不能被访问~ 因为释放内存后,系统只是回收了指针所指的内存,此时指针是一个野指针本身仍是合法的,(只有有些类似void*的指针了),访问野指针程序当然出现异常~! 例子1:malloc()和free...
分类:其他好文   时间:2014-12-26 11:09:29    阅读次数:143
valgrind内存检查
安装 apt-get install valgrind 测试程序 #include #include int*Test(void) { int* x = malloc(10 * sizeof(int)); delete x;// problem 1: heap block overrun, problem 2: memory leak --x not free, ...
分类:其他好文   时间:2014-12-25 16:29:15    阅读次数:118
android查看内存使用情况
1. 在IDE中查看Log信息当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:D/dalvikvm: , , , GC_Reason表示导致垃圾回收的原因以及当前的回收类型,包括以下几类: GC_CONCURRENT:当堆中对象数量达到一定是触发的垃圾收集 GC_FOR_MALLOC:....
分类:移动开发   时间:2014-12-23 12:15:30    阅读次数:175
malloc、free、new、delete
一、C语言中不定大小多维数组的处理:如果要给二维数组(m*n)分配空间,代码可以写成下面:char **a, i;// 先分配m个指针单元,注意是指针单元// 所以每个单元的大小是sizeof(char *)a = (char **)malloc(m * sizeof(char *));// 再分配...
分类:其他好文   时间:2014-12-23 01:32:20    阅读次数:192
c++一些知識彙總
指针和引用的区别 指针指向一块内存,它的内容是指向内存的地址;引用是某内存的别名 引用使用是无需解引用,指针需解引用 引用不能为空,指针可以为空 引用在定义是被初始化一次,之后不可变;指针可变 程序为指针变量分配内存区域,而引用不需要分配内存区域 new和malloc的区别,free和delete的区别 malloc与free是C++/C语言的标准库函数,...
分类:编程语言   时间:2014-12-22 21:23:13    阅读次数:203
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!