读书人

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

发布时间: 2013-04-09 16:45:09 作者: rapoo

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

读书人网 >C语言

热点推荐