Remplissage -Résolu- [C] - C - Programmation
Marsh Posté le 14-11-2006 à 18:18:57
Siluro a écrit : Alors admettons que j'ai cette structure suivante :
|
Non. Pour copier des chaines, on utilise strcpy().
Marsh Posté le 14-11-2006 à 19:51:38
Siluro a écrit : Problème : cette manipulation (avec les accolades) ne marche qu'à l'initialisation des variables |
Et encore, avec ta structure initiale, même l'initialisation avec des accolades ne marchera pas
Ex:
typedef struct { |
Le problème c'est que chaque chaîne écrite en "dur" n'est qu'un pointeur vers une zone statique de la mémoire et l'initialisation ne fera que copier ce pointeur dans "tabStarAc".
Pour que ça marche, il faudra que ta structure soit définie ainsi
typedef struct { |
Siluro a écrit : ... sachant toutes les informations sont toutes différentes les unes des autres : pas de boucle possible.... |
Si. Tu peux très bien, à partir de mon initialisation, faire une boucle qui copiera chaque membre de "tabStarAc[i]" dans une variable bien à toi...
Marsh Posté le 14-11-2006 à 20:51:13
l'affectation par accolade hors initialisation a été ajouté en C99 il me semble :
typedef struct {
int age;
char prenom[30];
}t_pers;
t_pers t;
...
t = (t_pers){ 42, "zozo" };
un truc dans le genre...
Marsh Posté le 14-11-2006 à 21:12:49
ooooo jesus
je viens de tester sans réfléchir ton cast. ça fonctionne ! merci
je vais quand même aller regarder ton information dans C99.
Merci à tous, ça va beaucoup m'aider ça !!
Marsh Posté le 14-11-2006 à 18:05:46
Alors admettons que j'ai cette structure suivante :
Pour remplir une entité t_pers, on peut le faire de deux façons :
Ou de cette façon :
On est d'accord ?
MAIS admettons que ma structure se complique (disons 5 paramètres, des GtkWidget par exemple), et ADMETTONS que je fasse un tableau de structures de t_pers de 15 cases... Selon la 2è façon, il faudrait que je fasse 15 cases * 5 paramètres = 75 lignes de code ? (sachant toutes les informations sont toutes différentes les unes des autres : pas de boucle possible).
Bien entendu que non, je souhaite éviter cette méthode. Mais le 1er exemple a l'air plus intéressant... Problème : cette manipulation (avec les accolades) ne marche qu'à l'initialisation des variables. Donc ma question est : comment remplir une entité de structure de plusieurs paramètres en une seule fois (dans le même esprit que la 1ère façon) ?
N.B. : Je sais qu'on peut créer une fonction qui, en envoyant les données à insérer en paramètre, irait remplir chaque case du tableau. Mais j'aimerais savoir s'il existe une manip' pour éviter cela. Merciiiiiiiiiiiiiiiiiii !
Message édité par Siluro le 14-11-2006 à 21:53:05