本文转载自《蓝衬衫白少年》的文章。 原文链接: https://blog.csdn.net/QQ _ 42565910/article/details/90346236
在c语言中,动态数组申请可以在new上实现,但在c中,可以使用malloc函数动态申请连续的内存空间。
宏函数原型
扩展语音* malloc (unsigned intnum _ bytes;
分配长度为num_bytes字节的存储器块
malloc函数的返回值
如果分配成功,则返回指向分配内存的指针。 否则,返回空指针。
使用malloc函数的注意事项
malloc函数返回未指定类型的指针。 使用时请务必强制转换为必要的类型。
重要提示:使用malloc开拓空间时,使用完毕后必须释放空间。 如果不释放的话就会造成内存泄漏。
请勿在使用malloc函数创建的区域中移动指针。 这是因为移动一次后,申请的区域和释放的区域的大小可能不匹配
如何使用malloc函数
关于malloc打开的空间类型: malloc只打开空间,不检查类型,使用时只强制类型旋转。
举个例子,《我》会打开你需要的字节大小的空间。 如何使用是你的事
mallo函数返回的实际上是未指定类型的指针,必须在此之前添加指针类型强制转换才能使用
指针自身=(指针类型) (malloc(sizeof ) (数据数) ) ) ) ) ) ) ) 65
int *p=NULL; int n=10; p=(int* ) malloc ) sizeof(int ) *n ); 在使用malloc函数之前一定要计算字节数。 malloc将打开大小为用户所需字节数的区域。
如果多次申请空间,系统如何避免回收空间呢?
使用malloc打开空间后,系统会在此空间前面添加标签(0或1 )。 malloc函数在打开空间时遇到标记0时在此打开,1表示使用此空间。
free函数
作用:释放malloc (或calloc、realloc )函数分配给指针变量的内存空间。
注意:使用后,该指针变量必须指向空值,以防止出现悬空指针(失效指针),有效避免错误操作。
intmain((int*p=) int* ) malloc (sizeof ) int ); *p=100; free(p; p=空值; 返回0; } free函数释放空间后,将内存前的标志设置为0,并使用cd填充释放的空间以防止数据泄漏。