c - 初始化指向结构体的指针的元素

标签 c pointers struct

我有以下结构:

typedef struct{
    int freq;
    char val;
} Char; // alias

我需要创建一个指向一定数量的 Char 的缓冲区(指针),如下所示:

Char* chars  = calloc(256, sizeof(Char));

我想将 chars 中的所有 Char 结构的 freq 初始化为 -1。是否可以不使用循环来完成?

最佳答案

如果您使用 GCC,您可以执行 Char s[256] = {[0 ... 255] = {-1, 0}};

{-1, 0} 是结构体初始化

编辑:您可以看看这篇文章: How to initialize all members of an array to the same value? 它会给出很好的提示:)

关于c - 初始化指向结构体的指针的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807225/

相关文章:

c - 使用复合文字初始化变量

java - Java 中的私有(private)变量和 C++ 结构中的私有(private)变量有什么区别?

c - Malloc 时出现段错误 11

c - 从 C 中的同一个文件中读取 int 和 char

c - 确定打开的文件是否已在 C 中被修改

c - 这个 makefile 是否消除了 .c 文件?

c++ - 返回指针时出现段错误

c++ - 必须存在不相关的专业才能编译?

go - 如何将数据 append 到嵌套结构格式化的 slice 中