strerror
strerror括号里接收库函数的返回值,然后以%s的形式打印出来就是错误原因
()里面是errno,errno是全局的,库函数执行失败就会返回一个值给他
动态内存管理
malloc
free
不是消除指针本身,而是消除指针所指区域的内容,还给系统,给别人用
calloc:calloc(个数,大小),会自动初始化为0
ralloc能够动态修改已开辟的内存
情况2时,ralloc会自动释放原空间
int main()
{
int *ptr = (int*)malloc(100);
if(ptr != NULL)
{
//业务处理
}
else
{
exit(EXIT_FAILURE);
}
//扩展容量
//代码1
ptr = (int*)realloc(ptr, 1000);//这样可以吗?(如果申请失败会如何?)
//代码2
int*p = NULL;
p = realloc(ptr, 1000);
if(p != NULL)
{
ptr = p;
}
//业务处理
free(ptr);
return 0;
}
此时等价
动态内存管理函数常见错误
内存泄漏