首頁>Club>
17
回覆列表
  • 1 # 使用者6714470155983

    FILE是在stdio.h定義的儲存檔案流資訊的一個結構體型別(也可能是在其它檔案中定義了另外的資料型別,然後透過typedef定義FILE)。注意它本身是型別而不是結構體名,所以FILE型別在字面上雖然不包含struct,但實際表示一個結構體。FILE變數中儲存的不止是檔案路徑,還有緩衝區指標、讀寫方式等一系列資訊(具體實現不一定相同)。一般使用FILE*型別變量表示檔案控制代碼,透過它來訪問FILE結構體,對檔案進行操作。FILE**是指向FILE*的指標。

    現在考慮定義一個基型別為FILE*的陣列,那麼它的陣列名就是const FILE**型別的地址常量(經過傳遞後退化成FILE**指標):

    FILE* file[100];

    file[1]=fopen("1.txt","r+");

    成功的話file[1]就是一個有效的檔案指標。

    那麼,等效的方法:

    FILE** file;

    file=malloc(100*sizeof(FILE*));

    接下來這裡file的使用和上面相同(當然,使用完後需要free以免記憶體洩露),區別僅在於file是動態陣列,指向的若干FILE*變數在堆上而不是棧上。

    ----

  • 中秋節和大豐收的關聯?
  • 怎樣清洗羊毛毯?