Programme qui quitte subitement
Bonjour, désolé pour le titre pas très explicite mais il est assez difficile de donner un nom à ce problème.
Depuis quelques jours, j'ai un bug dans mon programme qui vient apparemment de malloc. J'ai donc essayé de réduire le code jusqu'à arriver à la ligne qui pose problème. Je ne sais pas si j'y suis arrivé mais en tout cas, j'en suis arrivé à un point où j'ai isolé, semble-t-il, un problème.
Code:
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
| #include <stdlib.h>
#include <stdio.h>
typedef struct {
int bla;
} tableau, *ptableau;
typedef struct{
int bla;
} bille, *pbille;
typedef struct recordxxx{
unsigned int val;
struct recordxxx* suiv;
} record, *precord;
typedef struct {
unsigned short longueur;
unsigned short largeur;
double angle;
pbille bille_prete;
pbille bille_suivante;
} canon, *pcanon;
int main() {
pcanon canon = NULL;
ptableau jeu = NULL;
precord records = NULL;
jeu = (ptableau) malloc(sizeof(tableau));
records = (precord) malloc(sizeof(record));
canon = (pcanon) malloc(sizeof(canon));
// repere 1
canon->largeur = 10;
canon->longueur = 100;
system("pause"); // repere 2
canon->angle = 4;
canon->bille_prete = (pbille) malloc(sizeof(bille));
canon->bille_suivante = (pbille) malloc(sizeof(bille));
printf("4\n");
system("pause");
return (EXIT_SUCCESS);
} |
Ce code fonctionne bien.
Cependant, si vous supprimez le premier system("pause") (repere 2), ça ne marche plus : le programme freeze ou quitte brutalement. Si vous passez les 2 derniers malloc au niveau du repere 1, ça marche même si on enlève la pause.
Si vous avez des idées, je suis très preneur, merci.