私はこのサイトが初めてで、プログラミングも初めてです。
構造体の配列を宣言し、関数呼び出しで初期化できるようにしようとしています。次に、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"}};
}
}
コンパイル エラー:
関数「メイン」:
|20|
エラー:関数 'init_struct' 内の'{' トークンの前に式が必要です:
|45| エラー: 添字付きの値は配列でもポインターでもベクトルでもありません
|45| エラー: '{' トークンの前に式が必要です