Bonjour,
Je créer un nouveau sujet, dans la section débutant car je ne pense pas que mes problème ne soit solutionnable que par des "expert" , pour diverses raisons : j'ai toujours diverses problèmes lors de la compilation, que je met un temps incroyablement long a trouve(pour, la plupart du temps, des erreurs ridicule .... )

Première question : Comment crée-t on "proprement" un tableau de structure(liste, par exemple)? ou un tableau de pointeurs vers une structure? et pour finir, un tableau 2D de pointeurs vers une structure?
J'ai essayer diverses méthodes, certaine fonctionnent, jusqu'au moment ou l'on doit accéder a ce qu'il y a a l’intérieur de la structure contenu dans le tableau....

Deuxième question :
Quelles est exactement la différence entre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
liste* l;
l=(liste*)malloc(sizeof(liste));
ET
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
liste* l;
l=malloc(sizeof(liste));
Troisième question, que signifie l'erreur de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
gcc *.o -lm -o -c TP5
TP5: dans la fonction « __x86.get_pc_thunk.bx »:
(.text+0x30): définitions multiples de « __x86.get_pc_thunk.bx »
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_info): réadressage 0 a un index de symbole 8 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_info): réadressage 1 a un index de symbole 9 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_info): réadressage 2 a un index de symbole 10 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 0 a un index de symbole 4 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 1 a un index de symbole 4 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 2 a un index de symbole 5 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 3 a un index de symbole 5 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 4 a un index de symbole 6 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_ranges): réadressage 5 a un index de symbole 6 invalide
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crti.o:(.gnu.linkonce.t.__x86.get_pc_thunk.bx+0x0): défini pour la première fois ici
TP5: dans la fonction « _fini »:
(.fini+0x0): définitions multiples de « _fini »
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crti.o:(.fini+0x0): défini pour la première fois ici
TP5: dans la fonction « recup »:
(.text+0x1cb): définitions multiples de « recup »
util.o:util.c:(.text+0x0): défini pour la première fois ici
TP5: dans la fonction « avanceDefA »:
(.text+0x223): définitions multiples de « avanceDefA »
util.o:util.c:(.text+0x58): défini pour la première fois ici
TP5: dans la fonction « data_start »:
(.data+0x0): définitions multiples de « __data_start »
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 0 a un index de symbole 11 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 1 a un index de symbole 12 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 2 a un index de symbole 2 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 3 a un index de symbole 2 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 4 a un index de symbole 11 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 5 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 6 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 7 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 8 a un index de symbole 12 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 9 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 10 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 11 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 12 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 13 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 14 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 15 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 16 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 17 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 18 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 19 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 20 a un index de symbole 13 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): réadressage 21 a un index de symbole 22 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_line): réadressage 0 a un index de symbole 2 invalide
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o:(.data+0x0): défini pour la première fois ici
TP5: dans la fonction « data_start »:
(.data+0x4): définitions multiples de « __dso_handle »
/usr/lib/gcc/i686-linux-gnu/4.8/crtbegin.o:(.data+0x0): défini pour la première fois ici
TP5: dans la fonction « creerListesAdjacences »:
(.text+0xfd): définitions multiples de « creerListesAdjacences »
Graphe.o:Graphe.c:(.text+0x0): défini pour la première fois ici
TP5:(.rodata+0x4): définitions multiples de « _IO_stdin_used »
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o:(.rodata.cst4+0x0): défini pour la première fois ici
TP5: dans la fonction « _start »:
(.text+0x0): définitions multiples de « _start »
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o:/build/buildd/eglibc-2.19/csu/../sysdeps/i386/start.S:115: défini pour la première fois ici
TP5:(.rodata+0x0): définitions multiples de « _fp_hw »
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o:(.rodata+0x0): défini pour la première fois ici
TP5: dans la fonction « main »:
(.text+0x17c): définitions multiples de « main »
Test.o:Test.c:(.text+0x0): défini pour la première fois ici
TP5: dans la fonction « _init »:
(.init+0x0): définitions multiples de « _init »
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_line): réadressage 0 a un index de symbole 4 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_line): réadressage 1 a un index de symbole 5 invalide
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crti.o(.debug_line): réadressage 2 a un index de symbole 6 invalide
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crti.o:/build/buildd/eglibc-2.19/csu/../sysdeps/i386/crti.S:63: défini pour la première fois ici
/usr/lib/gcc/i686-linux-gnu/4.8/crtend.o:(.tm_clone_table+0x0): définitions multiples de « __TMC_END__ »
TP5:(.data+0x8): défini pour la première fois ici
/usr/bin/ld: erreur dans TP5(.eh_frame); aucune table .eh_frame_hdr ne sera créée.
collect2: error: ld returned 1 exit status
make: *** [TP5] Erreur 1
voici a quoi ressemble le makefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
all : TP5
Graphe.o : Graphe.c Graphe.h
	gcc Graphe.c -c
util.o : util.c util.h
	gcc util.c -c
Test.o : Test.c Graphe.h
	gcc Test.c -c
TP5 : Graphe.o util.o  Test.o
	gcc *.o -lm -o -c TP5
j'ai aussi un dossier contenant les .c .h et .o de liste et cellule que j'include dans Graphe.c par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#include"lc/liste.h"
#include"lc/cellule.h"
Merci d'avance pour votre aide, même si vous ne voulez/pouvez pas répondre directement a certaines questions, des piste pour comprendre sont les bienvenues!