C/C++ malloc分配内存

C/C++ 使用malloc()分配内存

1.malloc()

malloc()接受一个参数,即所需内存字节数,然后其可以在可用内存中寻找到一个大小适合的块。其可以返回该块内存的第一个字节的地址,可以赋值给指针变量。对于malloc()返回的类型需要进行强制类型转换将其转换为我们需要的类型。找到所需空间该函数将返回一个空指针。
例:使用malloc()来创建一个数组,使用malloc请求一个存储块以及一个指针存放该块在内存中的位置;

double* ptd;
ptd = (double*)malloc(30 * sizeof(double));

分析:该段代码请求一个能够保存30个double类型数据的空间,并且ptd指向该空间所在位置。ptd是作为一个指向double类型值的指针声明的,而不是指向30个double类型值的数据块的指针。数组的名字是它的第一个元素的地址,因此令ptd指向内存块的第一个元素,可以像使用数组名一样使用指针变量。

2.free()

malloc()和free()的函数原型在stdlib.h中。
调用malloc()可以分配一块内存给程序使用,在使用完成后可以使用free()释放该块内存,free()的参数应该是一个指针,指向由malloc()分配的内存块。两者是相互配合的。
分配内存的持续时间是从调用malloc()开始,到使用free()后结束。

你可能感兴趣的:(c++,内存管理)