前言:
在动态内存分配中,有以下几种常见的错误:
- 对空指针的解引用操作
- 动态开辟空间的越界访问
- 对非动态内存开辟空间的释放
- 使用free释放动态开辟内存的一部分
- 同一空间释放多次
- 忘记释放内存空间
在平时的做题中应当避免此类错误哦!下面我们就来扩展一下自己的技能吧
第一技能:
先来看看这道题吧,下面代码执行过程中会出现什么问题?
void GetMemory(char* p)
{
p = (char*)malloc(100);
}
void Test()
{
char *str = NULL; //①
GetMemory(str); //②
strcmp(str, "hello,world"); //③
printf(str); //④