typedef struct Coordonnee Coordonnee;
struct Coordonnee{
char prenom[100];
char nomDeFamille[100];
int adresse[100];
char nomDeRue[100];
char ville[100];
char numeroDeTelephone[100];
int age[100];
} ;
void initialiserCoordonnees(Coordonnee *pointeur);
int Directive (void); //affiche les instruction a l'écran
voici la fonction initialiser
void initialiserCoordonnees(Coordonnee *pointeur){
pointeur->prenom[100] = {0};
}
mon main
#include <stdio.h>
#include <stdlib.h>
#include "Coordonnee.h"
#include <conio.h>
#include <windows.h>
int main(){
int choix = 0;
Coordonnee carnet;
Coordonnee *pointeur = NULL; //pointeur pointant vers la structure Coordonnee
pointeur = &carnet;
initialiserCoordonnees(&pointeur); //initialiser les tableaux des carnets de chaque utilisateur
// affichons le menu du programme
choix = Directive();
if (choix == 1){
printf("Quel est son prenom : ");
scanf("%s",carnet.prenom);
printf("\nQuel est son nom de famille : ");
scanf("%s",carnet.nomDeFamille);
printf("\nQuel est son adresse : ");
scanf("%d",carnet.adresse);
printf("\nQuel est le nom de sa rue : ");
scanf("%s",carnet.nomDeRue);
printf("\nQuel est le nom de sa ville : ");
scanf("%s",carnet.ville);
prinft("\nQuel est son numéro de telephone : ");
scanf("%s",carnet.numeroDeTelephone);
prinft("\nQuel est son age : ");
scanf("%d",carnet.age);
}else if (choix == 2){
}else if (choix == 3){
}else if (choix ==0){
printf("\n\n\nAu revoir !");
printf("\n\n");
printf("Pesez sur une touche pour fermer");
exit(0);
}
return 0; }
c'est quoi la syntaxe pour que je puisse initialiser chaque tableau qui represente ma structure?
pointeur est déjà.... un pointeur, qui contient l'adresse de carnet. Pourquoi envoyer à la fonction l'adresse de pointeur (donc l'adresse d'une adresse) plutôt que pointeur ?
Et prenom est de type char *, donc pour le mettre à zéro, tu utilises strcpy() ou tu mets le 1er caractère à zéro.
Donc,
Coordonnee carnet;
Coordonnee *pointeur = &carnet
initialiserCoordonnees(Coordonnee pointeur);
----------------------------------
// et
initialiserCoordonnees(Coordonnee *pointeur) {
strcpy(pointeur->prenom,"");
// ou
*pointeur->prenom=0; // ou ='\0'
// ou
pointeur->prenom[0]=0; // ou ='\0'
- Edité par edgarjacobs 3 janvier 2022 à 20:31:04
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Quand, dans un projet, on ne connaît pas la syntaxe pour faire quelque chose, le mieux c'est de créer un source A PART où on ne s'occupe que de ce problème, et dans une version très réduite. Pour ne pas additionner les emmerdements.
Alors ça pourrait commencer par
struct S {
int t[2];
};
struct S s = ....
En tatonnant par essais et erreurs, en lisant bien les messages du compilateur, on trouve rapidement comment il faut faire. Et on peut s'en servir dans le projet.
Un des avantages de C, c'est qu'il n'y a besoin que de très peu de code pour tester une construction syntaxique.
- Edité par michelbillaud 4 janvier 2022 à 8:26:47
initialiser un tableau dans une structure
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.