
精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
注1、malloc函数从堆上分配内存,参数是个按字节为单位的大小值,返回的是void*类型,看接收内存的指针类型如何,对void*进行强制转换,比如int *p=(int*)malloc(4*sizeof(int));这是分配4个整数内存大小。
注2、malloc的返回值要用free释放。如果不释放,则运行初期也察觉不到问题,但是在进程占用内存快到4G时,进程就肯定会崩溃了。因为进程允许的内存空间大小是4G。
注3、malloc和C++里的new操作符大目标一样,小细节不一样。如果是C++里的对象,向对象分配内存是不能用malloc的,用malloc时构造函数不会调用。