可能会有些人澄清一些基本的C语言时刻。
struct key {
char *name;
int value;
};
struct key first_key_array[] = {
{"abc", 5},
{"xyz", 6},
{"def", 7}
};
struct key second_key_array[] = {
{"what", 200},
{"when", 300}
};
struct data {
struct key **key_array;
};
struct data all_key_arrays[] = {
{first_key_array},
{second_key_array}
};
我可以直接访问first_key_array [0]:
printf("%s %d", first_key_array[0].name, first_key_array[0].value);
但是通过all_key_arrays访问不起作用:
printf("%s %d", all_key_arrays[0].key_array[0].name, all_key_arrays[0].key_array[0].value);
有人可以分享任何想法吗?
答案 0 :(得分:1)
尝试将 all_key_arrays 的初始值设定项更改为:
struct data all_key_arrays[] = {
first_key_array,
second_key_array
};
或
struct data all_key_arrays[] = {
&first_key_array[0],
&second_key_array[0]
};
解释 - all_key_arrays 是一个数组指针,因此初始化数组的值应该是指针。