accéder au tableau à l’intérieur du tableau de structures

J’ai une structure comme suit

struct a { char* ap; char* inputs[10]; int e; }; 

alors j’ai créé un tableau de cette structure comme struct a list [100];

maintenant je veux vider les entrées du tableau [10] et pour cela, j’utilise la syntaxe pour accéder au premier emplacement:

  ip=0; inp=0; list[ip].inputs[inp] 

mais j’obtiens l’erreur “erreur C2107: index illégal, indirection non autorisée” lors de la compilation du code

veuillez suggérer comment accéder à l’emplacement du tableau dans le tableau de la structure.

 regards priya 

Ici, vous utilisez un tableau de pointeur de caractère dans votre structure. Donc, au départ, vous allouez de la mémoire pour votre structure en créant une liste de 100. Je pense que vous n’avez pas créé de mémoire pour votre tableau de caractères. Vous devez créer de la mémoire pour chaque pointeur de caractère. Je suggère donc un exemple de code.

 #include  struct a { char* ap; char* inputs[10]; int e; }; int main() { int ip=0; int inp=0; struct a list[100]; list[ip].inputs[inp]= (char*)malloc(25); scanf("%s",list[ip].inputs[inp]);//Or other copy function to fill ssortingng printf("output %s",list[ip].inputs[inp]); } 

Travaille bien sur mon pc .. voici mon code ..

 #include  struct a { char* ap; char* inputs[10]; int e; }; int main() { int ip=0; int inp=0; struct a list[100]; list[ip].inputs[inp] = 'A'; printf("This: %c", list[ip].inputs[ip]); return 0; } 

OUTPUT = This: A

laissez-moi savoir si cela a aidé ou non ..

Les structures elles-mêmes n’ont pas de données. Vous devez créer des objects du type struct et définir les objects …

  struct a { char* ap; char* inputs[10]; int e; }; /* I like to separate the type definition from the object creation */ struct a list [3]; list [0].inputs[0] = "Choclate"; list [0].inputs[1] = "Almond"; list [0].inputs[2] = "Rasberry"; 

J’espère que ce sera utile. Voir aussi cet article