Completement dépasser par malloc en C

Fermé
nico - 26 juil. 2005 à 15:07
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 27 juil. 2005 à 01:13
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

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.
0
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.
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
27 juil. 2005 à 01:13
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...
0