如何用C语言初始化一个空缓冲区

时间:2015-06-01 13:47:53

标签: c buffer

我正在做一项工作,希望我必须从文件中读取caracters,并将它们保存在缓冲区中。后来我必须输出它们,但是因为我知道我还在努力解决缓冲问题。 我想知道如何初始化缓冲区(当然是空的)然后将caracters放入缓冲区。 我想在另一个由int main(..)调用的函数中执行它。这里有我的:

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;
}

1 个答案:

答案 0 :(得分:1)

有两种适用于两种不同需求的方法。选择适合您要求的。

  • 如果要将分配的内存区域初始化为0,可以使用calloc()直接执行此操作(分配并初始化为0)。

  • 如果您要将已分配的缓冲区初始化为其他值,则可以在执行malloc()后使用memset()