C語言(內存管理、文件處理)

  • 內存的理解
    計算機內存是以字節爲單位進行存儲,每個字節都有自己的編號即地址(指針)。
    這裏寫圖片描述
    本圖爲源代碼
    兩個連在一起的數字爲1個字節其中01 00 00 00 中的兩個連在一起的數爲一個字節,0x00FAFB7C是01的地址,之後的三個字節的地址值分別遞增1
    這裏寫圖片描述
    上圖中,num[3]爲int型,每個元素佔4字節,地址如圖顯示。

  • 野指針與懸空指針
    野指針:未初始化的指針
    懸空指針:只想的地址被free掉以後未置爲NULL的指針

  • 內存空間的動態分配:
    1、malloc函數
    malloc函數會在動態存儲區分配一塊內存,如果分配成功則返回值爲這塊內存的首地址,即返回值爲指針;如果失敗則返回控制針NULL。函數的參數爲分配內存的大小(字節)。
    2、free函數
    free函數將之前分配的內存釋放,參數爲所分配內存的指針。

分配動態內存的步驟:
①定義一個指針
②分配一塊內存空間指向上面的指針
③用完之後釋放這塊內存空間

如:

void *p;
p=malloc(10);//......
free(p);

注:對一個指針應用free之後,它的值不會改變,但它指向了一個無效的內存區,爲懸空指針。
如果沒有及時釋放某塊動態內存,並將他的指針指向別處,則會造成”內存泄漏“。

  • 文件處理
    C語言在stdio.h中定義了一個FILE文件結構體類型,在C程序中系統對文件進行的各種操作是通過指向文件結構體的指針變量來實現的。
    定義一個只想文件結構體類型的指針變量:
FILE*p;//p爲指針名

1、打開文件
fopen函數
在vs中函數名:fopen
返回值 : 文件指針(代表這一個文件)
參數列表:
[參數1] : 字符串類型,
表示文件的路徑
[參數2] : 字符串類型,
表示打開文件的方式
2、關閉文件
C語言文件使用完後,應該立即關閉文件,防止由於誤操作等原因破壞已經打開的文件。
使用fclose函數 用法爲:fclose(文件指針)

    FILE*p;
    fopen_s(&p, "D:\\文本.txt", "a");
    if (p == NULL)
    {
        printf("文件打開不成功");
        return 0;
    }
    fclose(p);

要判斷是否成功打開了文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章