首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

二维结构数组的有关问题

2012-03-22 
二维结构数组的问题我想定义一个二维数组176*144,每个元素是一个结构 struct rgbst以下的定义和动态分配空

二维结构数组的问题
我想定义一个二维数组176*144,每个元素是一个结构 struct rgbst
以下的定义和动态分配空间对吗?怎么我编译显示`g_rgb565save' undeclared
   
struct rbgst{
  unsigned short rgb565save;
  int xpos;
  int ypos;
}Info;

Info** g_rgb565save=(Info**)malloc(sizeof(Info*)*144);
for(int k=0;k<144;k++)
  g_rgb565save = (Info*)malloc(sizeof(Info)*176);

[解决办法]
错了,在你的代码中“Info”是rbgst结构体的一个实例对象,而rbgst才是结构体名。你用Info** g_rgb565save来定义不对,应该是rbgst** g_rgb565save。
[解决办法]
换个名字好不?
typedef struct rbgst{
unsigned short rgb565save;
int xpos;
int ypos;
}Info;
[解决办法]
楼上说的对,你的定义使得Info是结构体的一个变量了,而不是类型。看后面的代码,似乎是希望Info是结构体类型。
可以用typedef让Info也表示结构体类型:
typedef struct rbgst{
unsigned short rgb565save;
int xpos;
int ypos;
}Info;
...
[解决办法]

C/C++ code
//The right define is below:typedef struct   rbgst{     unsigned   short   rgb565save;     int   xpos;     int   ypos; }Info;Info**  g_rgb565save=(Info**)malloc(sizeof(Info*)*144); for(int   k=0;k <144;k++)     g_rgb565save[k]   =   (Info*)malloc(sizeof(Info)*176);//or in C/C++struct   rbgst{     unsigned   short   rgb565save;     int   xpos;     int   ypos; };struct   rbgst **  g_rgb565save=(struct   rbgst**)malloc(sizeof(struct   rbgst*)*144); for(int   k=0;k <144;k++)     g_rgb565save[k]   =   (struct   rbgst*)malloc(sizeof(struct   rbgst)*176);//or in C++struct   rbgst{     unsigned   short   rgb565save;     int   xpos;     int   ypos; };rbgst **  g_rgb565save=(rbgst**)malloc(sizeof(rbgst*)*144); for(int   k=0;k <144;k++)     g_rgb565save[k]   =   (rbgst*)malloc(sizeof(rbgst)*176);
[解决办法]
struct 前面加个typedef 或者是

struct rbgst **g_rgb565save

热点排行