Declarer un tableau de type inconnu

etudiantinfo Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > etudiantinfo Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
j'ai pas compris! pouvez-vous me donner un exemple?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > etudiantinfo Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu partager ton code?
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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