Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/03/2022, à 18:24

benOAH

[Résolu] problème d'initialisation d'un tableau dynamique en C

Bonjour,
Je n'arrive pas à initialiser un tableau de 15 postes dont la taille que j'alloue dynamiquement car il va diminuer au cours du traitement quand des joueurs vont sortir :

 char* jeu_play ;
 int nb_joueurs = 15; 
 jeu_play = (char *) malloc(nb_joueurs * sizeof(char));
 jeu_play [nb_joueurs] = (char *) {"Eric", "François", "Marina", "Toto", "GrosBras", "Fifi", "Caroline", "Norbert", "Marguerite", "Jojo", "Laplouc", "JO", "Grand-Mère", "Phillipe", "Hélène"};
 printf ("%s", &jeu_cartes[0]) ;

Je ne trouve rien que du blanc dans ce tableau. Je n'arrive pas à le charger pour l'initialiser alors que ce n'est pas un problème difficile dans d'autres langages.
Je demande à l'un d'entre vous de bien vouloir m'aider ...
Merci d'avance;
Ben

Dernière modification par benOAH (Le 23/03/2022, à 19:39)


La loi est la foi - Descartes

Hors ligne

#2 Le 23/03/2022, à 18:35

NicoApi73

Re : [Résolu] problème d'initialisation d'un tableau dynamique en C

Bonjour,

Là, tu crées un tableau de 15 caractères. Il te faut créer un tableau de 15 noms, chacun d'un certain nombre de caractères (à toi à définir la taille, puis à contrôler à l'usage que tu ne fais pas de débordement...)

Hors ligne

#3 Le 23/03/2022, à 18:50

kamaris

Re : [Résolu] problème d'initialisation d'un tableau dynamique en C

Si jeu_play est un tableau de char, alors jeu_play [nb_joueurs] est un char, pas un tableau de tableaux de char.
Par ailleurs, si la taille du tableau est nb_joueurs, alors jeu_play [nb_joueurs] est en dehors du tableau : ses indices vont de 0 à nb_joueurs - 1.

Au-delà de ça, tu ne devrais probablement pas t'embêter avec des allocations dynamiques dans ce cas : alloue statiquement ton tableau de char * dès le départ avec ces 15 noms, puis réutilise-le en le réorganisant, avec une sentinelle NULL à la fin, quand tu enlèves des noms (ou garde le premier comme référence si nécessaire et alloues-en un autre de même taille).

Hors ligne

#4 Le 23/03/2022, à 19:39

benOAH

Re : [Résolu] problème d'initialisation d'un tableau dynamique en C

D'accord, Je change ma logique algorithmique car j'ai déjà passé trop de temps sur ce ... de tableau !
Merci pour vos réponses


La loi est la foi - Descartes

Hors ligne

#5 Le 23/03/2022, à 19:43

iznobe

Re : [Résolu] problème d'initialisation d'un tableau dynamique en C

Bonjour , sinon voilà ce que j'  avais fait a l' epoque pour autre chose , mais facilement transposable :

const char* tableauDeNoms_V [ NUMBER_NAME_RELAY_V ] = {"Cuisine", "Sa manger", "Salon", "Salle TV", "Ch parents", "S.D.Bains", "Bureau"};

evidemment tu peux enlever " const " devant qui declare ce tableau en cosntante . et ce n ' est pas un tableau dynamique .

ca aussi peut t ' interresser :

const char * LABELS_OF_INTEREST[] = {"VG", "VO", "VF","VA", "P", "AM", "AA", "AG","R"}; 
const unsigned int MAX_LABELS_OF_INTEREST = sizeof(LABELS_OF_INTEREST) / sizeof(char*);

Dernière modification par iznobe (Le 23/03/2022, à 19:59)


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne