A voir également:
- Pb d'allocation de memoire en C
- Mémoire vive - Guide
- Test memoire pc - Guide
- Nettoyer memoire iphone - Guide
- Mémoire virtuelle - Guide
- Le processus est interrompu en raison du manque de mémoire epson - Forum Imprimante
16 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
15 janv. 2009 à 16:16
15 janv. 2009 à 16:16
Salut,
D'abord syntaxiquement c'est faux, l'étoile n'a rien à faire là.
Ensuite c'est impossible que ce genre de truc puisse compiler, sinon ça signifie qu'il faudrait allouer récursivement de la mémoire à l'infini pour lui allouer de la mémoire.
Corrige moi si je me trompe, mais je suppose que tu voulais faire un truc comme ça:
typedef struct cellule { int val; cellule next; }*
D'abord syntaxiquement c'est faux, l'étoile n'a rien à faire là.
Ensuite c'est impossible que ce genre de truc puisse compiler, sinon ça signifie qu'il faudrait allouer récursivement de la mémoire à l'infini pour lui allouer de la mémoire.
Corrige moi si je me trompe, mais je suppose que tu voulais faire un truc comme ça:
struct __cellule { int val; struct __cellule *next; } cellule;
Utilisateur anonyme
15 janv. 2009 à 16:32
15 janv. 2009 à 16:32
salut kilan,
pour la struct elle fausse t'a raison mais je l'est écrit juste comme exmple , j'ai fait la compilation du programme et résolu tout les erreur et maintenant je suis coinsé avec l'execution ,
pour la structure je m'en fou ce qui m'interesse c'est la problème d'allocation en fait a chaque fois que j'execute le programme en mode debug il retourne null pour chaque allocation je ne sais pas ce qui lui arrive
c'est comme il n'y avait plus de memoire pour l'allocation, exmple!:
si je fait NC = (cellule*)malloc(sizeof(cellule)
a l'execution NC vaut NULL;
vous comprenez maintenant le problème ?
je vais essayer de faire une allocation pour un caractère ou chaine de caractère pour comprendre plus d'ou vient le pb
pour la struct elle fausse t'a raison mais je l'est écrit juste comme exmple , j'ai fait la compilation du programme et résolu tout les erreur et maintenant je suis coinsé avec l'execution ,
pour la structure je m'en fou ce qui m'interesse c'est la problème d'allocation en fait a chaque fois que j'execute le programme en mode debug il retourne null pour chaque allocation je ne sais pas ce qui lui arrive
c'est comme il n'y avait plus de memoire pour l'allocation, exmple!:
si je fait NC = (cellule*)malloc(sizeof(cellule)
a l'execution NC vaut NULL;
vous comprenez maintenant le problème ?
je vais essayer de faire une allocation pour un caractère ou chaine de caractère pour comprendre plus d'ou vient le pb
Utilisateur anonyme
15 janv. 2009 à 16:38
15 janv. 2009 à 16:38
voila j'ai essayer ceci:
s = (char *)malloc(sizeof(char)*100); //ici s=NULL
s = "allocation reussi"; //ici s != NULL je crois que c'est normal puisque j'ai fait une allocation implicite avec
printf("%s",s);
s = (char *)malloc(sizeof(char)*100); //ici s=NULL
s = "allocation reussi"; //ici s != NULL je crois que c'est normal puisque j'ai fait une allocation implicite avec
printf("%s",s);
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
15 janv. 2009 à 16:51
15 janv. 2009 à 16:51
C'est vraiment bizzare ton truc. C'est sensé n'arriver que quand on n'a plus de mémoire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
15 janv. 2009 à 17:02
15 janv. 2009 à 17:02
j'ai installé devC++ mais je ne sais pas comment faire le debug pas à pas comme en VS peut tu m'aider vite fait svp?
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
15 janv. 2009 à 17:04
15 janv. 2009 à 17:04
Je sais pas :-)
Utilisateur anonyme
15 janv. 2009 à 17:47
15 janv. 2009 à 17:47
bon alors puisqu'aucun ne peut m'aider comment peut on voir l'état de la memoire sous VS?
Utilisateur anonyme
15 janv. 2009 à 17:49
15 janv. 2009 à 17:49
j'ai rencontré une erreur lors de l'execution qui dit :
Exception non gérée à 0x76e8d292 dans forum.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00040f0c.
qu'est ce que ça veut dire?
Exception non gérée à 0x76e8d292 dans forum.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00040f0c.
qu'est ce que ça veut dire?
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
15 janv. 2009 à 20:17
15 janv. 2009 à 20:17
Exception non gérée à 0x76e8d292 dans forum.exe : 0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00040f0c.
Ca veut dire que tu essaie d'écrire à un endroit de la mémoire qui ne t'appartient pas. En gros, tu écris sans doute dans un poitneur non alloué ou un dépassement de tableau, ou...
Ca veut dire que tu essaie d'écrire à un endroit de la mémoire qui ne t'appartient pas. En gros, tu écris sans doute dans un poitneur non alloué ou un dépassement de tableau, ou...
Utilisateur anonyme
15 janv. 2009 à 20:35
15 janv. 2009 à 20:35
c'est a cause de l'allocation de memoire qui retourne toujours NULL
peut tu me dire si on peut voir l'état de la memoire en cours d'execution ou comment faire le vidage de memoire ou quelque soit qui peut me résoudre le pb?
svp! j'en ai vraiment besoin pour continuer
peut tu me dire si on peut voir l'état de la memoire en cours d'execution ou comment faire le vidage de memoire ou quelque soit qui peut me résoudre le pb?
svp! j'en ai vraiment besoin pour continuer
Rebootes ta machine et si c'est toujours pareil, envoie-nous tout le code à moins qu'il y en ait trop (et dans ce cas il faut le réduire et voir si le problème subsiste) et prière de ne pas oublier les balises sinon je ne regarde pas.
Utilisateur anonyme
15 janv. 2009 à 20:41
15 janv. 2009 à 20:41
d'accord merci
mais dernière chose : par envoyer vous voulez dire par mail ou sur le forum?
mais dernière chose : par envoyer vous voulez dire par mail ou sur le forum?
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
15 janv. 2009 à 20:48
15 janv. 2009 à 20:48
Sur le forum, en utilisant les balises < code> </code> pour garder l'indentation.
Utilisateur anonyme
15 janv. 2009 à 20:56
15 janv. 2009 à 20:56
est ce qu'il y a une possibilité de vous l'envoyer par email?
car c'est un projet à rendre et je ne veux le mettre en public sinon n'importe qui pourra le copier
car c'est un projet à rendre et je ne veux le mettre en public sinon n'importe qui pourra le copier
salut lupius,
je crois savoir d'ou vient le pb en fait j'utilise un arbre n-aire avec les structure suivante:
struct Noeud{ //liste des message
char id[6];
char id_parent[6];
char id_subject[6];
char id_user[21];
char date[15];
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;
je pense que le pb vient d'ici :
R = (Response)calloc(1,sizeof(Response));
la premier fois ca passe sans erreur et la deuxième fois il retourne NULL
qu'est ce que tu en dit ?
je crois savoir d'ou vient le pb en fait j'utilise un arbre n-aire avec les structure suivante:
struct Noeud{ //liste des message
char id[6];
char id_parent[6];
char id_subject[6];
char id_user[21];
char date[15];
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;
je pense que le pb vient d'ici :
R = (Response)calloc(1,sizeof(Response));
la premier fois ca passe sans erreur et la deuxième fois il retourne NULL
qu'est ce que tu en dit ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
15 janv. 2009 à 21:22
15 janv. 2009 à 21:22
Salut
Je n'ai pas tout lu. Mais n'aurais-tu pas oublié d'inclure stdlib.h ? (On ne sait jamais ^^).
Je n'ai pas tout lu. Mais n'aurais-tu pas oublié d'inclure stdlib.h ? (On ne sait jamais ^^).