输入数据
- 如果输入数据时,先告诉你个数,然后再输入,要记得记录每个数据
- C99可以用变量做数组定义的大小,C99之前呢?
- int a = (int)malloc(n*sizeof(int));
malloc
#include <stdlib.h>
void* malloc(size_t size);
- 向malloc申请的空间大小是以字节为单位的
- 返回的结果是void*,需要类型转换为自己需要的类型
- (int*)malloc(n*sizeof(int))
没空间了?
- 如果申请失败则返回0,或者叫做NULL
- 你的系统能给你多大的空间
free()
- 把申请来的空间还给“系统”
- 申请过的空间,最终都应该要还
- 混出来的,迟早都是要还的
- 只能还申请来的空间的首地址
常见问题
- 申请了没free—>长时间运行内存逐渐下降
- 新手:忘了
- 老手:找不到合适的free的时机
- free过来再free
- 地址变过了,直接去free