Declarer un tableau de type inconnu
Fermé
etudiantinfo
Messages postés
8
Date d'inscription
samedi 29 septembre 2018
Statut
Membre
Dernière intervention
14 novembre 2018
-
13 nov. 2018 à 21:06
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 15 nov. 2018 à 10:01
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 15 nov. 2018 à 10:01
A voir également:
- Declarer un tableau de type inconnu
- Tableau croisé dynamique - Guide
- Appel inconnu - Guide
- Code ascii tableau - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
2 réponses
yg_be
Messages postés
23313
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
Ambassadeur
1 552
13 nov. 2018 à 23:55
13 nov. 2018 à 23:55
bonjour, peux-tu nous en dire plus sur l'utilisation de ce tableau? tous les éléments seront-ils du même type? comment le programme saura-t'il quel type d'élément est enregistré?
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
15 nov. 2018 à 10:01
15 nov. 2018 à 10:01
Salut etudiantinfo,
J'ajouterai aux éléments de réponse de yg_be que si tu dois récupérer une saisie au clavier sans savoir quel type de données l'utilisateur va saisir, tu n'as pas d'autre choix que de récupérer dans un premier temps la saisie comme une chaîne de caractères (avec fgets), que tu pourras toujours traiter pour la vérifier, convertir (par exemple avec strtol et strtod) et stocker selon le type attendu et utile au programme.
http://www.cplusplus.com/reference/cstdlib/strtol/
http://www.cplusplus.com/reference/cstdlib/strtod/
Pour le stockage, outre les solutions proposées par yg_be, tu peux par exemple utiliser une union pour stocker dans un espace mémoire réservé par le programme des éléments de types différents.
Vois : https://c.developpez.com/cours/bernard-cassagne/node95.php
Il y a des solutions manuelles à base de void * et de casts, mais il faut vraiment savoir ce que l'on fait et aimer avoir des parenthèses dans tous les sens et on peut vite tomber dans des comportements indéfinis ou des incohérences.
Sinon, ta question est vague, semble avoir plusieurs facettes et peut être interprétée de plusieurs façons. Le code que tu fais et sur lequel tu bloques nous donnerait le contexte exact de ton problème, et te permettrait de formuler ta question sous une forme précise et non théorique et d'obtenir une réponse directe.
Poste un exemple de ton code illustrant ton problème !
Dal
J'ajouterai aux éléments de réponse de yg_be que si tu dois récupérer une saisie au clavier sans savoir quel type de données l'utilisateur va saisir, tu n'as pas d'autre choix que de récupérer dans un premier temps la saisie comme une chaîne de caractères (avec fgets), que tu pourras toujours traiter pour la vérifier, convertir (par exemple avec strtol et strtod) et stocker selon le type attendu et utile au programme.
http://www.cplusplus.com/reference/cstdlib/strtol/
http://www.cplusplus.com/reference/cstdlib/strtod/
Pour le stockage, outre les solutions proposées par yg_be, tu peux par exemple utiliser une union pour stocker dans un espace mémoire réservé par le programme des éléments de types différents.
Vois : https://c.developpez.com/cours/bernard-cassagne/node95.php
Il y a des solutions manuelles à base de void * et de casts, mais il faut vraiment savoir ce que l'on fait et aimer avoir des parenthèses dans tous les sens et on peut vite tomber dans des comportements indéfinis ou des incohérences.
Sinon, ta question est vague, semble avoir plusieurs facettes et peut être interprétée de plusieurs façons. Le code que tu fais et sur lequel tu bloques nous donnerait le contexte exact de ton problème, et te permettrait de formuler ta question sous une forme précise et non théorique et d'obtenir une réponse directe.
Poste un exemple de ton code illustrant ton problème !
Dal
14 nov. 2018 à 07:40
14 nov. 2018 à 08:42
14 nov. 2018 à 18:52
14 nov. 2018 à 20:20