利用melloc函数实现动态内存分配 注:需要和free()函数搭配使用 导入头文件 #includestdlib.h malloc的参数: void* malloc(size_t size);//返回值是一个待定的指针类型,根据你所要开辟的内存的类型来进
利用melloc函数实现动态内存分配
注:需要和free()函数搭配使用
导入头文件
#include<stdlib.h>
malloc的参数:
void* malloc(size_t size);
//返回值是一个待定的指针类型,根据你所要开辟的内存的类型来进行强制转型
//()里面的是开辟空间的大小
//size_t 是无符号整型的意思
例:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int* p = (int*)malloc(10 * sizeof(int));
//开辟一个10个int型大小的空间
//并将开辟出来的空间交给一个新的指针来指示
if(p == NULL)//可能存在开辟失败的情况 (如内存不够开了)
{
printf("动态内存开辟失败\n");
}
else
{
//可以开始使用这块内存了,如:
int i = 0;
for(i; i < 10; i++)
{
*(p + i) = i;
}
}
//当动态内存开辟的空间不再使用时,需要利用free()将空间释放
free(p);//情况地址指向的空间
//此时只是把动态开辟出来的空间使用权还给系统
//p的值还是没有改变
p = NULL;//将P所指向的地址赋为NULL,这时候才算整个操作流程结束
//虽然在程序的运行生命周期之后,系统会被动的情况动态分配的空间,
//但是人为提前的释放有利于系统的空间利用
return 0;
}