2015-06-01 36 views
1

我正在做一個工作,希望從文件中讀取字符,並將它們保存在緩衝區中。後來我必須輸出它們,但是爲了知道我仍然在緩衝區中掙扎。 我想知道如何初始化緩衝區(當然爲空),然後將字符放入該緩衝區。 我想這樣做到底是誰通過INT主(..)稱爲另一個函數這裏有啥子我:如何初始化C語言的空緩衝區

buffer_t initBuffer(void) { 
    // Reserves space for the buffer, ends program if it cant reserve  space. 

    buffer_t buffer = malloc(sizeof(*buffer)); 
    if (buffer == NULL) { 
     printf("Error allocating bufefr\n"); 
     exit(1); 
    } 

在此之後,我怎麼能與他在0計數器初始化呢?


buffer_t定義:

typedef struct buffer_s *buffer_t; 

struct buffer_s { 
    unsigned char buffer[BUF_SIZE]; 
    counter; 
} 
+2

如果您需要將它初始化爲零,請使用'calloc',但是如果您打算將文件中的字符存儲在此緩衝區中,則無需對其進行初始化。 –

+0

什麼是*'buffer_t'?它是指向某種結構的指針嗎?還有別的嗎? –

+0

我想至少說,計數器是0我可以用它來添加字符它的權利? –

回答

1

有兩個不同的時有兩個apprroaches。選擇適合您的要求。

  • 如果你想你分配的內存區初始化爲0,您可以用calloc()直接做到這一點(分配和初始化0)。

  • 如果你想初始化分配緩衝區爲其他值,你可以做一個malloc()後使用memset()