Pb d'allocation memoire en C pas résolu
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
A voir également:
- Pb d'allocation memoire en C pas résolu
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Nettoyer memoire iphone - Guide
- Mémoire vidéo dédiée : 128 mo ✓ - Forum Carte graphique