c - 非类类型错误

标签 c class member

#define MAXLINELENGTH   8192

 struct Image {
unsigned int height;
unsigned int width;
unsigned int value;
unsigned int maxValue;
unsigned int data[MAXLINELENGTH];
 };


 Image *Image_Init ()
 {
    Image *tmpImage;
    unsigned int data[MAXLINELENGTH];
    //if(tmpImage != NULL)

    //{
    tmpImage->height = 0;
    tmpImage->width = 0;
    tmpImage->value = 0;
    tmpImage->maxValue = 0;
 for (int i = 0; i < MAXLINELENGTH; i++)
{
    tmpImage -> data[i] = data[i];
}
//tmpImage.data = {};
//return &tmpImage;
//}

return tmpImage;
   }

unsigned int    Image_Get_Height (Image *img)
 {
Image *tmpImage;
int UINT_MAX;
UINT_MAX = tmpImage.height;

//int UINT_MAX;
//UINT_MAX = img.height;
return UINT_MAX;
}

发生错误,我不知道如何修复它。

c:73: 错误:请求'tmpImage'中的成员'height',它是非类类型'Image*'

请帮助解决这个错误。

最佳答案

Image *tmpImage;
/* ... */
UINT_MAX = tmpImage.height;

这里有两个问题。第一个是语法错误,您使用点 . 来访问结构指针的成员,因此您应该使用 ->

第二个问题更严重,那就是你将使用一个未初始化的指针,这可能(并且很可能会)导致程序运行时崩溃。

关于c - 非类类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976277/

相关文章:

python - 列表和集合的成员资格测试有何不同?

arrays - 在 Swift 中访问数组中枚举的原始值

C 程序 (Visual Studio) 中有关 Malloc 的编译错误(类型 "void*"的值不能用于初始化类型 "Item*"的实体

c - 如何在 C 中从 COPYDATASTRUCT 复制消息?

c - scanf 卡住并继续接受输入

ruby - ruby 类名前的::符号/运算符是什么?

c++ - Opencv-2.4.5 是否预先启用了 TBB?

java - 为什么我的 GPA 方法在传递正确的参数后无法正确计算?

php - 我想将面板与 Bootstrap 并排放置

C++:如何声明私有(private)成员对象