Completement dépasser par malloc en C
bonjour ,
voila g un pb completement bizard:
je lance quelquechose de similaire a ça:
printf("point 1\n");
ptr=malloc(size) ; (size =2)
printf("point2\n");
et j'obtient ça
point 1
segment fault
je comprend pas du tout ce quil se passe d'autant plus ke quand j'appelle cette fonction précédement cela fonctionne,je programme ce truc la sous linux
merci pour votre aide
voila g un pb completement bizard:
je lance quelquechose de similaire a ça:
printf("point 1\n");
ptr=malloc(size) ; (size =2)
printf("point2\n");
et j'obtient ça
point 1
segment fault
je comprend pas du tout ce quil se passe d'autant plus ke quand j'appelle cette fonction précédement cela fonctionne,je programme ce truc la sous linux
merci pour votre aide
3 réponses
-
Il manque des bout, c'est quoi le type de ptr? Il me semble que tu dois caster le malloc non?
char * ptr;
printf("point 1\n");
ptr=(char*)malloc(size) ; (size =2)
printf("point2\n");
Ca devrait fonctionner ça. -
oui biensur j'ai déclaré ptr comme ceci:
char * ptr;
je vais essayer de mettre (char*) devant malloc mais je ne crois pas ke ça va changer kelkechose car la fonction marche plusieurs fois avant de planter. -
En fait le pb peut venir d'avant (héhé), ou ton malloc est buggé (haha :p). Toutefois essaie de mettre un truc du genre :
char *ptr=(char*)malloc(sizeof(char)*nb_char);
Si tu ne t'en sors pas donne-nous le code...