函数接受数组时,必须知道数组元素个数
函数里面是通过指针变量来接收数组的地址
指针变量无法确定指向的内容的大小
常量字符串内存空间由系统自动分配
在静态区里面分配 当程序结束才会释放
常量区<- 常量 const
静态区<- static 静态变量只会被定义一次 生命周期:从开始到结束
栈<- 局部变量 (离开作用域就自动收回)
堆<-自己申请的内存 malloc calloc realloc (必须自己释放)
动态分配内存:
1.为什么需要:存储的数据需要延长生命
2.一个指针变量需要存储数据,但变量本身只能存储地址,不能存储数据,需要分配内存空间来存储数据
如果使用指针变量接受数据 必须先为这个指针变量分配一片指向的内存空间
有内存空间才能存数据
使用头文件stdlib.h
使用malloc (memory alloc)申请内存空间
name = (char )malloc(10sizeof(char));
使用完毕必须手动释放内存 free(name);
使用realloc动态改变已经分配内存的大小 增加或者减少
name = (char )realloc(name,20sizeof(char));
exit(EXIT_FAILURE);退出之前必须将之前分配的内存释放掉