第12章 存储类别、链接和内存管理
——《C Primer Plus》的搬运工,仅记录自己觉得重要的内容,方便以后参考
12.4 分配内存:malloc()和free()
用库函数分配和管理内存
静态数据在程序载入内存时分配
自动数据在程序执行块时分配,并在程序离开该块时销毁
malloc()函数接受一个参数,所需的内存字节数,该函数会找到合适的空闲内存块,这样的内存是匿名的,即malloc()分配内存,但是不会为其赋名,同时返回动态分配内存块的首节地址,因此可以把该地址赋给一个指针,并使用指针访问这块内存。
malloc()函数可以返回指向数组的指针、指向结构的指针,通常该函数的返回值被强制转换成匹配的类型。
malloc()分配内存失败则返回空指针
double* ptd;
ptd=(double*)malloc(30*sizeof(double));
指针ptd被声明为一个指向double类型,而不是指向含有30个double类型值的块,即指向该快的一个首元素
ptd[i]
free()函数的参数是malloc()返回的地址,即释放分配的内存
free(ptd);
分配内存失败可以利用exit()函数结束程序
exit(EXIT_FAILURE);//程序异常终止
12.4 calloc()函数-没看
——所有代码仅表示关键步骤,可能无法正常运行