Bonjour

Le code suivant compile (gcc -Wall -Werror -o point.exe point.c)


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
 
#include <stdio.h>
#include <stdlib.h>
 
typedef struct {
 
						int x;
						int y;
					}Point;
 
void test(int nb) {
 
	Point* p = malloc(nb * sizeof(Point));
 
	int i;
	for(i = 0 ; i < (2 * nb) ; i++) {
 
		p[i].x = i;
		p[i].y = i + 1;
 
	}
 
 
	for(i = 1 ; i <= nb ; i++) {
 
		printf("du point numero %d, l'abscisse vaut %d et l'ordonnee vaut %d \n", i, p[i].x, p[i].y);
 
	}
 
	printf("fin affichage debut liberation memoire\n");
 
	free(p);
 
	printf("sortie de la fonction test\n");
 
}
 
 
 
int main (int argc, char* argv []) {
 
	int param = atoi(argv[1]);
 
	test(param);
 
	printf("retour dans le main \n");
 
	return 0;
 
}
l'execution par: point.exe 6 donne
du point numero 1, l'abscisse vaut 1 et l'ordonnee vaut 2
du point numero 2, l'abscisse vaut 2 et l'ordonnee vaut 3
du point numero 3, l'abscisse vaut 3 et l'ordonnee vaut 4
du point numero 4, l'abscisse vaut 4 et l'ordonnee vaut 5
du point numero 5, l'abscisse vaut 5 et l'ordonnee vaut 6
du point numero 6, l'abscisse vaut 6 et l'ordonnee vaut 7
fin affichage debut liberation memoire

puis cesse de fonctionner si qlq'un peut m'expliquer mon erreur ou la cause

d'avance merci