c - 如何在主函数中初始化结构

标签 c struct initialization pgm

我正在尝试编写简单的 pgm 文件读取 C 程序。我必须创建简单的结构:

typedef struct pgmImage {
   int R; //rows
   int C; //collumns
   int G; //grey scale
   int **pix;  // array of pixels
}Image;

现在我必须初始化空图像结构。我需要一个在其他函数中基于 *.pgm 文件设置所有变量。 我一直收到“无法读取内存”和“已使用未初始化局部变量 x”的信息。我试着简单地做:

Image *x=0;

但是当读取函数尝试设置 R、C、G 值时程序崩溃。

最佳答案

如果你想要一个指向 Image 的指针,你必须像这样初始化。

Image *x = NULL;

像这样访问图像 (x) 阵营:

x-> C = 0;
x-> ...
x->pix = NULL;

但首先您需要为图像分配内存。

x = (Image*) malloc(sizeof(Image));

关于c - 如何在主函数中初始化结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13324347/

相关文章:

c - 体系结构 x86_64 函数指针的 undefined symbol

c - 为什么我在 C 代码中使用 x->y = z 而不是 x.y = z?

c - 在一个函数而不是另一个函数中访问同一内存时发生段错误

python - 类变量在赋值时失去作用域

c - 为什么打印字符串显示垃圾

c - C 中 return 与 return 0 之间的任何区别

c - 字符数组中的 '\0'有什么意义?

c - 这个变量的值是如何在这个循环之外递增的?

c - LinkedList、结构体包含问题

arrays - 简单但具体的数组编译错误(C)