J'ai une fonction qui prend comme argument un pointeur vers un tableau de struct:Copie struct Tableau de Structs reçus comme pointeur dans la fonction Argument
void foo (int *StructArrayAddress)
Au sein de la fonction, je puis construire une nouvelle struct qui ressemble à ceci
struct
{
int a;
int b;
char c[10];
}myStruct;
ce que je voudrais alors faire est de copier que struct à mon tableau de struct, en fonction du pointeur sur ce tableau que j'ai reçu comme argument. Ne pas avoir de chance avec la syntaxe, ou il me manque quelque chose. Quelqu'un peut-il conseiller? Merci!
EDIT: Je ne suis pas sûr de m'être expliqué correctement, car je ne pense pas que la solution affichée ici soit ce que je veux faire. Pour clarifier: il y a un certain nombre de structures en dehors de ma fonction ici. Je reçois l'adresse de l'élément struct correct dans un tableau de structs en tant qu'argument de ma fonction. Supposons que l'appelant a déjà pris soin de me transmettre la bonne adresse; Je n'ai pas besoin de l'indexer du tout. Je construis ensuite localement une structure à partir d'autres données. Je veux maintenant copier cette structure que j'ai construite localement à la structure à l'emplacement dans le tableau que j'ai reçu en tant qu'argument.
void foo (int *StructArrayAddress)
{
struct
{
int a;
int b;
char c[10];
}myStruct;
a = 5;
b = 10;
c = {1,2,3,4,5,6,7,8,9,10};
//Copy local struct myStruct to location StructArrayAddress here
StructArrayAddress = myStruct; //Something like this but I have the syntax wrong
}
J'espère que cela a plus de sens.
EDIT2: J'ai peut-être réalisé que quelque chose que vous avez essayé de me transmettre me manquait: une référence à ma structure locale nécessaire dans l'argument de sorte que le format de la structure que je passe le dos est connu?
Si l'argument est censé être un pointeur vers un tableau de 'struct's, pourquoi est-il déclaré comme' int * '?? –
Pouvez-vous poster le reste du code de votre fonction? –
@Daniel Fischer: Ma pensée était que, bien que ce soit un tableau de structures, l'adresse est toujours la même taille, non? – nobby