Completement dépasser par malloc en C

nico -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
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

Nashouille
 
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
nico
 
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 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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