#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/