(宿題に関する質問) 私はC言語を学んでいます。ファイルからデータを読み込み、そのデータのルーターを作成し、サイズ255の配列内のルータが、私は、私は同じエラーで、私は多数のスレッドを検索したサブスクリプトされた値は、配列インデックスでも配列もポインタもベクトルでもありません
#define ARRAY_SIZE 255
struct router routers[ARRAY_SIZE] = {0};
int main(int argc, char *argv[]){
unsigned char id;
char name[32];
struct router *new_router;
if(argc == 2){
//reads file with fread
//setting id and name which prints out as expected
new_router = make_router(id, name); //initialising method that returns a router pointer
routers[new_router->id] = new_router;
//error occurs here, at [new_router->id]. Have also tried just using id
}
}
配列に追加しようとしているライン上のタイトルのエラーを取得維持しますメッセージは、配列を宣言していない人、またはインデックス番号としてunsigned charで試してみる人がいます。これはすでに使用しています。これについてのいくつかの洞察が大好きです。
struct router{
unsigned char id;
char name[32];
}
struct router* make_router(unsigned char id, char* name){
struct router *r = malloc(sizeof(struct router));
r->id = id;
r->name = name;
return r;
}
「ルータ」の定義はどこですか? –
ルータはidのためのunsigned charとchar *の名前を持つ非常に基本的な構造体です – Telanore
それが基本的であれば、私のようなコメントを避けるために質問に入れることができます。また 'make_router'定義も必要です。 –