Communauté

Création de liste e...
 
Notifications
Retirer tout

Création de liste en C

4 Posts
2 Utilisateurs
0 Likes
391 Vu
0
Début du sujet

Bonjour

Serait-il possible de voir comment faire des liste en C pour gérer par exemple une liste de tir sur des astéroïdes.

3 Réponses
0

@liqiao Pour une liste dont on ne connais pas le nombre maximum d'élément et qui risque de beaucoup varié;
- Soit tu l'initialise avec un très grand nombre d'élément fixe(facile).
Si tu as une structure asteroide :

// asteroid.h
// définition de la structure asteroid
#include <stdio.h>
#include <stdlib.h>
struct asteroid
{
    int x;
    int y;
};

// asteroid.c
#include "asteroid.h"
// on réserve la mémoire pour 200 structure asteroid
// la liste est un pointeur du type struct asteroid
struct asteroid* list_asteroid = (struct asteroid*)malloc(200*sizeof(struct asteroid)); 
// parcour de la liste
for(int i=0;i<200;i++)
{
   // initialisation  de x = 23,  y = 50  de l'asteroid en position i
   list_asteroid[i]={23,50};
   printf("i %d x %d y %d",i,list_asteroid[i].x,list_asteroid[i].y)
}

tu vas devoir créer des fonctions pour géré ajout,récupération et la suppression d'élément.

- Soit tu peux faire une liste chaînée (difficile+).

0

note : pas oublier de faire un free(list_asteroid) pour libérer l'espace mémoire du pointeur quand tu ne l'utilise plus.

il est aussi possible initialiser la liste avec
struct asteroid list_asteroid[200];

0
Début du sujet

Bonjour

Je cherche plus à le faire de manière dynamique. Bien que ça ne soit plus un problème aujourd'hui je n'aime pas l'idée de réserver de la place en mémoire inutilement. 

Merci pour la piste je suis en train de regarder les structures de type liste doublement chaînée pour pouvoir faire le parcours dans les deux sens.

Après j'adore le développement et je m'intéresse au C justement pour la difficulté dans le sens où il n'existe pas déjà casiment tout comme en C# ou Java.

😉 👍

 

 

magnus oblerion magnus oblerion 10/04/2023 4:29

@liqiao Effectivement une liste doublement chaînée est nécessaire pour l'ajout et la suppression d'un élément.

Répondre
Share:

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.