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
bonjour !
je veux savoir comment déclarer un tableau si on sait pas quoi il va contenir( on sait pas si l'utilisation va entrer des entiers ou des floats ,des caractères ....) .est ce que c'est malloc(sizeof()) qui fait ca ?
A voir également:

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
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é?
0
etudiantinfo Messages postés 8 Date d'inscription samedi 29 septembre 2018 Statut Membre Dernière intervention 14 novembre 2018
14 nov. 2018 à 07:40
je voulais dire "l'utilisateur" .oui les elements sont du meme type mais c'est l'utilisateur qui va entrer ces elements donc on ne sait pas d'avance si il va entrer par ex des nombres ou des caracteres ou ....etc. generalement on declare le tableau sous la forme "type T[taille du tableau]; "mais la on ne sait pas le type :/
0
yg_be Messages postés 23313 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 1 552 > etudiantinfo Messages postés 8 Date d'inscription samedi 29 septembre 2018 Statut Membre Dernière intervention 14 novembre 2018
14 nov. 2018 à 08:42
moi je déclarerais plusieurs tableaux, un de chaque type, sans leur allouer de la mémoire. Ensuite, au moment où le type choisi par l'utilisateur est connu, j'allouerais la mémoire requise pour le tableau utilisé.
0
etudiantinfo Messages postés 8 Date d'inscription samedi 29 septembre 2018 Statut Membre Dernière intervention 14 novembre 2018
14 nov. 2018 à 18:52
j'ai pas compris! pouvez-vous me donner un exemple?
0
yg_be Messages postés 23313 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 1 552 > etudiantinfo Messages postés 8 Date d'inscription samedi 29 septembre 2018 Statut Membre Dernière intervention 14 novembre 2018
14 nov. 2018 à 20:20
peux-tu partager ton code?
0
[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
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
0