malloc函数与new关键字的功能类似。Zaodong向操作系统申请,在程序运行时分配一段连续的内存空间(内存块)。该位置位于堆内存上。程序运行时,向操作系统申请分配内存,内存地址由操作系统决定,称为动态分配;在编译期间分配或安排内存空间称为静态分配。静态分配的内存空间一般是在栈上,相对于程序的进程空间,由编译器决定,这是两个主要的区别。
关于堆和栈的相关知识请去百度。
静态分配内存,new关键字都是已知类型。malloc分配空间时,并不关心内存用来存储什么类型的数据,因此它返回的是虚拟指针,因此需要进行强制转换。例如,示例中在malloc前添加(int*)。
上一篇:结构体用malloc分配内存
下一篇:calloc函数申请内存