C和指针之动态内存分配常见问题和总结
生活随笔
收集整理的這篇文章主要介紹了
C和指针之动态内存分配常见问题和总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、動態內存分配常見問題
1) 結構體成員指針未初始化 2)為指針分配內存太小 3)內存分配成功,但是沒初始化 4)內存越界,內存泄漏,free多次或者釋放之后沒有設置為NULL
2、測試代碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//結構體成員指針需要初始化
struct student
{char *name;int score;
}stu, *p_stu;int main()
{//結構體成員指針未初始化,去掉下面一行代碼就會出問題stu.name = malloc(100);strcpy(stu.name, "chenyu");stu.score = 99;printf("stu name is %s and score is %d\n", stu.name, stu.score);if (stu.name){free(stu.name);stu.name = NULL;}char *p = NULL;//用malloc申請0字節內存p = malloc(0);if (p != NULL){printf("申請內存成功,但是無法使用\n");free(p);p = NULL;// free兩次會出錯//
總結
以上是生活随笔為你收集整理的C和指针之动态内存分配常见问题和总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之ndk编译出现这个错误e
- 下一篇: C和指针之高级指针话题通过函数指针实现在