(Question de devoirs) Je suis en train d'apprendre C, et je fais un programme qui lit les données d'un fichier, crée des routeurs de ces données, et met des pointeurs aux routeurs dans un tableau de taille 255, mais je continue à obtenir l'erreur de titre sur la ligne où je suis en train de les ajouter au tableauValeur indicée n'est ni tableau ni pointeur ni vecteur à l'index de tableau
#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
}
}
J'ai cherché beaucoup de discussions avec la même erreur message, mais ils sont tous soit quelqu'un qui n'a pas déclaré un tableau, ou ont été suggérés pour l'essayer avec char non signé comme numéro d'index, qui est ce que j'utilise déjà. J'adorerais avoir un aperçu de cela.
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;
}
Où est la définition de «routeur»? –
routeur est une structure très basique avec un caractère non signé pour id, et un char * nom – Telanore
Si c'est si basique, vous pouvez mettre dans la question pour éviter les commentaires comme le mien. La définition de 'make_router' est également nécessaire. –