Pb d'allocation memoire en C pas résolu

Résolu/Fermé
Utilisateur anonyme - 16 janv. 2009 à 20:05
 Utilisateur anonyme - 17 janv. 2009 à 11:46
salut,
voilà maintenant que je suis désespéré je vous envoit en espérant que quelqu'un m'aidie à résoudre le pb, pour rappeler le pb c'est lors de l'allocation memoire en C avec calloc il retourne NULL ce qui veut dire plus d'espace memoire à allouer

je travaille avec les arbre n-aire et voici un petit morceau du prog :

struct Noeud{ //liste des message
char content[201];
struct Cellule * response;
};
typedef Noeud* Message;

struct Cellule{ //arbre n-aire de reponse
struct Noeud* message;
struct Cellule* next;
};
typedef Cellule* Response;

void main(){
.
.
.
//pas de pb ic, le prog continuie et R != NULL

R->intro = create_response(buffer);

//a partir d'ici R = NULL et le prog s'arrete avec un message d'erreur:
//Exception non gérée à 0x00f42c60 dans forum.exe : 0xC0000005: Violation d'accès lors de l'écriture à //l'emplacement 0x00000004.

R = create_response(buffer);
R->next = M->response;
.
.
.

}

Response create_response(char *s){
Response R;
Message M;
//un message contient une liste de reponse
//et une reponse contient un message
//
//alloction d'un espace pour la reponse
if( R = (Response)calloc(1,sizeof(Response))){ //le pb apparait ici et R = NULL

//allocation d'un espace pour le message
if( M = (Message)calloc(1,sizeof(Message))){
strncpy(M->content,s+49,200); M->content[200]='\0';
}else{
puts("memoire insuffisante");
return NULL;
}
.
.
}else{
puts("memoire insuffisante");
return NULL;
}
return R;
}

j'espère que vous m'aidiez et merci d'avance

22 réponses

Utilisateur anonyme
17 janv. 2009 à 11:32
wooooooow! enfin le sauveur qui vient avec la solution. c'est fasinant ce que tu dit là ! tu m'a sauvé tu sais.
merci merci et encore remerci.
c'est génial yehhhhhhhhh !
c'était juste avant que je laisse tomber et m'en passer.
je ne réalise pas encore, c'est fini ! , le pb est résoluuuuut !.
0
Utilisateur anonyme
17 janv. 2009 à 11:46
(danse)
0