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

C语言 结构体(struct )有关问题

2013-04-09 
C语言 结构体(struct )问题#define MAX_INST 256struct inst_struct {char str[10]unsigned char opint

C语言 结构体(struct )问题
#define MAX_INST 256
struct inst_struct {
char str[10];
unsigned char op;
int format;
int ops;
};
typedef struct inst_struct inst_struct;
inst_struct *inst_table[MAX_INST];


如何给这个结构体的内容赋值
inst_struct *inst_table[MAX_INST];  让这个指针弄的有点糊涂

如果单是inst_struct *inst_table]; 或者inst_struct inst_table[MAX_INST]; 
都明白如何赋值,  让这个指针弄晕了

[解决办法]


inst_struct *inst_table[MAX_INST];

这儿定义的是inst_struct这种类型的指针数组。就是你定义了MAX_INST个inst_struct *指针。
这些指针都是野指针。你需要给它们分配空间,或者指向可读可写的区域才能使用。
[解决办法]
指针数组
inst_struct *inst_table[MAX_INST];
int i;
for(i=0;i<MAX_INST;i++)
{
  inst_table[i] = (inst_struct *)malloc(sizeof(inst_struct));
}
[解决办法]
for(int i=0;i<MAX_INST;i++)
{
inst_table[i]=(inst_struct *)malloc(sizeof(inst_struct));
scanf("%s%c%d%d",inst_table[i]->str,inst_table[i]->char,inst_table[i]->format,inst_table[i]->ops);
}

[解决办法]
数组的内容存的是指针。所以,你要对每个指针分配内存,然后赋值。就ok

热点排行