为ppm / pgm图像数据创建存储

时间:2012-09-21 17:43:20

标签: c++

所以我正在研究一个应该在pgm / ppm文件中读取并最终修改它的类。但是,我仍在努力阅读数据。我目前的目标是为二进制数据创建存储空间。下面是我应该执行此操作的函数的代码:

       uchar* pxm::newimg(int nrows, int ncols, int bpp)
       {
           uchar *newimage = new uchar[nrows * ncols * bpp]; 
           //uchar defined as binary data previously
           return newimage;
        }

然后我在我的“阅读”功能中使用它:

       img = newimg(nrows, ncols, bpp); //img declared in private section of class
       ws(myfile); //reads the newline
       myfile.read((char *) img[0], nrows * ncols * bpp); 
       //nrows, ncols, and bpp private member variables in class
       myfile.close();

不幸的是,在此代码编译时,它会在运行时产生分段错误。我相当肯定我的问题在于newimg函数,因为我已经做了检查以确保我正确地读取文件并正确设置nrows,ncols和bpp以及magicid。因此,我认为我没有正确初始化数组数据结构。如果有人有任何建议,将不胜感激。 谢谢, 泽塔 P.S 如果您需要有关我的代码的更多详细信息,请求它,我会在帖子中添加更多内容。

1 个答案:

答案 0 :(得分:2)

(char *) img[0]应为img(char *) img