Besoin reponse sur les fonction avec structures et pointeur
Fermé
out49
Messages postés
20
Date d'inscription
mardi 17 octobre 2017
Statut
Membre
Dernière intervention
21 octobre 2017
-
Modifié le 20 oct. 2017 à 09:54
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 - 21 oct. 2017 à 02:22
out49 Messages postés 20 Date d'inscription mardi 17 octobre 2017 Statut Membre Dernière intervention 21 octobre 2017 - 21 oct. 2017 à 02:22
A voir également:
- Besoin reponse sur les fonction avec structures et pointeur
- Fonction si et - Guide
- Thunderbird réponse automatique - Guide
- Réponse automatique outlook - Guide
- Pointeur souris - Guide
- Réponse automatique gmail - Guide
2 réponses
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
20 oct. 2017 à 10:00
20 oct. 2017 à 10:00
Bonjour
Voici un programme qui répond à ta question :
... ce qui donne à l'exécution :
Bonne chance
Voici un programme qui répond à ta question :
#include <stdio.h> typedef struct etudiant { char nom[20]; char prenom[20]; } etudiant_t; void etudiant_prompt(etudiant_t * etudiant) { printf("nom?\n"); scanf("%s", etudiant->nom); printf("prenom?\n"); scanf("%s", etudiant->prenom); } void etudiant_print(const etudiant_t * etudiant) { printf( "nom: %s\nprenom: %s\n", etudiant->nom, etudiant->prenom ); } int main() { etudiant_t etudiant; etudiant_prompt(&etudiant); etudiant_print(&etudiant); return 0; }
... ce qui donne à l'exécution :
(mando@aldur) (~) $ gcc plop.c
(mando@aldur) (~) $ ./a.out
nom?
toto
prenom?
titi
nom: toto
prenom: titi
Bonne chance
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 20 oct. 2017 à 13:28
Modifié le 20 oct. 2017 à 13:28
Salut out49,
1.
Je ne suis pas sûr de saisir ce que tu veux veut dire lorsque tu t'interroges sur "utiliser void avec un pointeur, comment serait mon scanf ?" et "mon probleme c'est sur la partie du pointeur avec un void".
La seule utilisation de
En revanche, une fonction qui retournerait une valeur, par exemple
Donc, dans ton code,
2.
Maintenant, il existe aussi en C des pointeurs sur
Par exemple :
Ces pointeurs sur
La fonction standard C
http://www.cplusplus.com/reference/cstdlib/qsort/
(vois l'exemple)
Tu n'as pas vraiment besoin d'utiliser des pointeurs sur
Dal
1.
Je ne suis pas sûr de saisir ce que tu veux veut dire lorsque tu t'interroges sur "utiliser void avec un pointeur, comment serait mon scanf ?" et "mon probleme c'est sur la partie du pointeur avec un void".
La seule utilisation de
voidque tu fais dans le code que tu postes est pour indiquer le type de la fonction dans son prototype, que tu définis ainsi :
void struct_etudiant(stud *etd).
voidsignifie ici que ta fonction
struct_etudiant()ne doit rien retourner. Dans d'autres langages, on appelle cela une "procédure". Il n'y a pas d'instruction
return <quelque chose>à la fin d'une fonction dont le type est
void.
En revanche, une fonction qui retournerait une valeur, par exemple
int max(int x, int y)doit comporter un
return <un entier>à la fin de la fonction.
Donc, dans ton code,
voidindique seulement le type de la fonction, et non pas d'un pointeur.
2.
Maintenant, il existe aussi en C des pointeurs sur
void, qui sont des pointeurs génériques, c'est à dire qui ne sont pas attachés à un type particulier.
Par exemple :
void * truc;déclare un pointeur sur
void.
Ces pointeurs sur
voidservent, par exemple, à faire, ou à utiliser des fonctions génériques fonctionnant avec n'importe quel type de données.
La fonction standard C
qsort(), qui permet de classer des tableaux de n'importe quel type (un tableau d'entiers, un tabeau de chaînes de caractères, un tableau de struct,...) , repose sur l'usage d'une fonction de comparaison utilisant des pointeurs génériques et qui décrit comment s'effectue la comparaison.
http://www.cplusplus.com/reference/cstdlib/qsort/
(vois l'exemple)
Tu n'as pas vraiment besoin d'utiliser des pointeurs sur
voiddans ta fonction
void struct_etudiant(stud *etd), sauf si tu veux, par exemple, créer une fonction générique qui servirait à remplir des données concernant plusieurs types de personnes.
Dal
out49
Messages postés
20
Date d'inscription
mardi 17 octobre 2017
Statut
Membre
Dernière intervention
21 octobre 2017
21 oct. 2017 à 02:21
21 oct. 2017 à 02:21
merci beaucoup ça m'as aider vraiment
21 oct. 2017 à 02:22