错误:'Img'的存储大小未知

时间:2012-12-29 01:21:10

标签: c size storage typedef pgm

我正在尝试编写一个简单的代码来读取.PGM文件。我写的代码是

#include "./netpbm/lib/pgm.h"
#include <stdio.h>

typedef unsigned int gray;

int main(int argc, char* argv[]){

    gray Maxval;
    gray* Img[];
    int row, col;

    FILE *fp;

    fp = fopen("barcode.PGM", "r");

    pm_proginit(0, &argv[0]);

    &Img[0] = pgm_readpgm(fp, &col, &row, &Maxval);
}

输出错误:'Img'的存储大小未知

任何调试建议?

3 个答案:

答案 0 :(得分:1)

documentation of libpgm开始,你似乎应该声明一个指向指针的指针:

gray **Img;
...
Img = pgm_readpgm(fp, &col, &row, &Maxval);
...
pgm_freearray(Img, row);

答案 1 :(得分:0)

您需要为该数组提供一个大小:

gray *Img[100];

由于您似乎不知道要在程序中稍后提供的大小,您可能希望查看动态分配(使用malloc(3)free(3))或可能{{{ 3}},如果你可以使用C99功能。

答案 2 :(得分:0)

没有什么可以调试的,因为你的代码甚至都没有编译。它不会编译,因为您将Img声明为gray的指针数组,但没有指定大小。因此编译器不知道数组应该有多大并且抱怨。