14.1 内存类型
- 第一种称为栈内存,它的申请和释放操作是编译器来隐式管理的
- 第二种类型的内存,即所谓的堆(heap)内存,其中所有的申请和释放操作都由程序员显式地完成
14.4 常见错误
- 忘记分配内存
char *src = "hello";
char *dst;
// oops! unallocated
strcpy(dst, src); // segfault and die
- 没有分配足够的内存
char *src = "hello";
char *dst = (char *) malloc(strlen(src)); // too small!
strcpy(dst, src); // work properly
- 忘记初始化分配的内存
- 忘记释放内存
- 在用完之前释放内存
- 反复释放内存
- 错误地调用 free()