我是这个网站的新手,对编程有点陌生。
我正在尝试声明一个结构数组,然后能够在函数调用中对其进行初始化。然后可以在 Main 中用不同的值重新初始化它,也可以调用函数来加载不同的值。我收到一些需要帮助的编译错误。
我的代码:
#include <stdio.h>
#define MAX_NAMES 5
typedef struct name // Struct template
{
int int_value;
char *string_value;
}Name;
void init_struct(struct name SETTINGS); // Function prototype
int main()
{
int i;
Name settings[MAX_NAMES];
for(i=0; i<=MAX_NAMES; i++) // Initializes struct
{
settings[i] = {1, "Test"};
}
printf("Before function call:\n-------------\n");
for (i=0; i < MAX_NAMES; i++) // Prints struct
printf("%i : int_value = %i, string_value = %s\n",
i, settings[i].int_value, settings[i].string_value);
init_struct(settings[MAX_NAMES]); // Calls function to reinitalize struct
printf("\n\nAfter function call:\n-------------\n");
for (i=0; i < MAX_NAMES; i++) // Prints struct
printf("%i : int_value = %i, string_value = %s\n",
i, settings[i].int_value, settings[i].string_value);
return 0;
}
void init_struct(struct name SETTINGS)
{
int i;
for(i=0; i<=MAX_NAMES; i++) // Redefines struct
{
SETTINGS[i] = {{2, "Test2"}};
}
}
编译错误:
在函数'main'中:
|20|
错误:函数“init_struct”中“{”标记之前的预期表达式:
|45| 错误:下标值既不是数组也不是指针也不是向量
|45| 错误:“{”标记之前的预期表达式