Se connecter avec
S'enregistrer | Connectez-vous

Compréhension de code

Dernière réponse : dans Programmation

Bonjour à tous,

Ces deux fonctions me posent problème dans leur compréhension.
Je suis habitué aux int, void, double,...
Mais ici je ne cerne pas trop "List" et "Graph" comme retour de la fonction.

Est-ce que List crée une liste d'adjacence en retour ?
Peut-on m'aider à traduire "en français" ?!

Merci.

List consList(Vertex v, List next) {
List l = (List) malloc(sizeof(struct cell));
l->v = v;
l-> next = next;
return l;
}

Graph consGraph(int size) {
Graph g = (Graph) malloc(sizeof(struct graph));
g->size = size;
if (size > 0)
g->adj = (List *) malloc (size * sizeof(List));
else
g->adj = NULL;
int i;
for (i = 0; i < size; i++) {
g->adj = NULL;
}
return g;
}

Autres pages sur : comprehension code

Lassé par la pub ? Créez un compte

Ok tu as répondu à ma question par ta phrase j'ai pu voir comment était construites les différentes structures !

Peux-tu m'aider sur ces lignes :

#define GREEN 0
#define YELLOW 1
#define RED 2

Il attribue 0 quand je définis un drapeau vert ?

int* flag = (int *) malloc (g->size * sizeof(int));

size étant le nbre de sommets du graphes g.

Merci.
Expert Programmation

Citation :


#define GREEN 0
#define YELLOW 1
#define RED 2

Il attribue 0 quand je définis un drapeau vert ?

Je peux juste te dire que le préprocesseur remplacera tous les occurences de GREEN par 0 lors de la compilation. Apres je sais pas a quoi ca peut servir dans ce cas précis.

Citation :

int* flag = (int *) malloc (g->size * sizeof(int));

size étant le nbre de sommets du graphes g.


Alors ca je vois pas trop ce que ca fait...
On dirait que ca réserve un espace dans la mémoire pour quelquechose (un tableau d'entiers?); et ca renvoit un pointeur de type int (donc l'adresse ou ce trouve l'espace mémoire réservé)...
Lassé par la pub ? Créez un compte
Tom's guide dans le monde