一、动态分配内存说明
动态分配内存
为什么需要动态分配内存:
1.存储的数据 需要延长生命周期
2.一个指针变量需要存储数据,变量本身只能存地址,不能存数据,需要分配内存空间来存储数据。
二、基本的使用办法
如果使用指针变量接收数据
必须先为这个指针变量分配一片指向的内存空间
有内存空间 才能存数据
导入头文件stdlib.h
使用malloc(memory alloc)申请内存空间
三、具体代码实现
#include <stdio.h>
#include <stdlib.h>
int main(){
char *name ;
name = (char *)malloc(10*sizeof(char));
if(name == NULL){
// 申请内存失败
exit(EXIT_FAILURE);
}
scanf("%s", name);
printf("%s\n",name);
//使用realloc动态改变已经分配内存的大小
//增加或者减少
name = (char *)realloc(name, 20*sizeof(char));
if(name == NULL){
//退出之前必须将之前分配的内存释放掉
free(name);
exit(EXIT_FAILURE);
}
//使用完毕必须自己手动释放内存
free(name);
return 0;
}