Accueil > Forum > > > > compilation mai au lancement "erreur la memoire ne peu pas pas etre read"
compilation mai au lancement "erreur la memoire ne peu pas pas etre read"
vendredi 23 décembre 2005 à 10:44:54 |
compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

touny23
|
je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre . j arrive a compiler sous dev-cpp mai lors de l execution j ai cette erreur qui apparait : L'instruction à "0*0040148a" emploie l adresse mémoire "0*00000000".La mémoire ne peut pas etre"read". cliquez sur OK pour terminer le programme. cliquez sur Annuler pour déboguer le programme
je sai pas d ou ça vien
je vous envoie le programme : si vous pouviez m aider ça m arrnagerai enormement ...sinon j essaierai sous unix a la rentrée ...merci d avance
#include<stdio.h> #include<stdlib.h> struct matrice { int dim1; int dim2; int type; double **tab; }; void creation (struct matrice M) { int i,j; printf("creation d'une matrice!!!!\n"); printf("entrer la 1e dimension="); scanf("%d",&M.dim1); printf("entrer la 2e dimension="); scanf("%d",&M.dim2); printf("entrer le type de la matrice=\n"); printf("1-matrice pleine\n"); printf("2-matrice triangulaire inférieure\n"); printf("3-matrice triangulaire supérieure\n"); scanf("%d",&M.type); if(M.type==1){ M.tab=(double **)malloc(M.dim1*sizeof(double *)); if(M.tab==NULL)printf("echec allocation mémoire\n"); for(i=0;i<M.dim1;i++) { M.tab[i]=(double *)malloc(M.dim2*sizeof(double)); if(M.tab[i]==NULL) {for(j=0;j<i;j++){ free(M.tab[j]); printf("echec allocation mémoire\n"); } } } printf("chiffre de la matrice??"); for(i=0;i<M.dim2;i++){ printf("%d e ligne\n",i); for(j=0;j<M.dim1;j++)scanf("%lf",&M.tab[i][j]); } } }
void affichage(struct matrice M) { int i,j; for(i=0;i<M.dim2;i++){ for(j=0;j<M.dim1;j++){printf("%lf",M.tab[i][j]);} printf("\n"); } }
main() { struct matrice M1; creation(M1); affichage(M1); system("pause"); }
|
|
vendredi 23 décembre 2005 à 11:23:10 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

luhtor
|
Tu te mélanges les pinceaux avec le passage d'argument. Tu oublies
qu'un argument n'est qu'une copie de l'objet initial. Donc si tu
modifies la copie, ca change rien à l'objet initial. Donc quand tu fais
affichage(M1). Tu affiches une matrice qui n'est pas encore initialisée.
Faut faire des passages par référence, (avec & si tu fais du C++, ou par pointeur, si tu fais de C).
Bon mais ca doit pas etre la seule erreur, mais essai de mieux le présenter, la c'est pénible à déchiffrer.
Tu vois ce genre de chose est étrange:
if(M.tab==NULL)
printf("echec allocation mémoire\n");
for(i=0;i<M.dim1;i++)
{
M.tab[i]=(double *)malloc(M.dim2*sizeof(double));
...
Ya une erreur d'allocation, mais tu vas quand meme allouer tous les éléments de la matrice ...
Bon aller cyao.
|
|
vendredi 23 décembre 2005 à 11:24:32 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

theguitou
|
Il y a un pb avec ta structure. Le code ci dessous marche. Mais essay quand même de comprendre !!
// tester sous linux.
#include<stdio.h>
#include<stdlib.h>
typedef struct {
int dim1;
int dim2;
int type;
double **tab;
}matrice;
void creation (matrice *M)
{
int i,j;
printf("creation d'une matrice!!!!\n");
printf("entrer la 1e dimension=");
scanf("%d",&M->dim1);
printf("entrer la 2e dimension=");
scanf("%d",&M->dim2);
printf("entrer le type de la matrice=\n");
printf("1-matrice pleine\n");
printf("2-matrice triangulaire inférieure\n");
printf("3-matrice triangulaire supérieure\n");
scanf("%d",&M->type);
if(M->type==1){
M->tab=(double **)malloc(M->dim1*sizeof(double *));
if(M->tab==NULL)printf("echec allocation mémoire\n");
for(i=0;i<M->dim1;i++)
{
M->tab[i]=(double *)malloc(M->dim2*sizeof(double));
if(M->tab[i]==NULL)
{for(j=0;j<i;j++){
free(M->tab[j]);
printf("echec allocation mémoire\n");
}
}
}
printf("chiffre de la matrice??");
for(i=0;i<M->dim2;i++){
printf("%d e ligne\n",i);
for(j=0;j<M->dim1;j++)scanf("%lf",&M->tab[i][j]);
}
}
}
void affichage(matrice M)
{
int i,j;
for(i=0;i<M.dim2;i++){
for(j=0;j<M.dim1;j++){printf("%lf",M.tab[i][j]);}
printf("\n");
}
}
int main()
{
matrice M1;
creation(&M1);
affichage(M1);
system("pause");
return 0;
}
|
|
vendredi 23 décembre 2005 à 11:25:00 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

cosmobob
|
salut, tu dois passer ta structure matrice par un pointeur. void creation (struct matrice* M) { // remplacer M. par M-> } dans ton main: main() { struct matrice M1; creation(&M1); affichage(M1); system("pause"); } en C, tu ne peux pas modifier un objet que tu passes par valeur dans un procedure. Si tu veux le modifier, tu dois le passer par adresse (avec un pointeur) a+ 
|
|
vendredi 23 décembre 2005 à 11:26:29 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

cosmobob
|
bon ben on t'a tous répondu en meme temps 
|
|
vendredi 23 décembre 2005 à 11:38:02 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

luhtor
|
Effectivement, et en plus pour dire la meme chose. :)
|
|
vendredi 23 décembre 2005 à 14:59:49 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

Joky
|
Tu dois passer par un pointeur sur ta structure ;)
Oups :)
Trop tard !
Lol if(!Meilleur("Joky")) return ERREUR;<
|
|
vendredi 23 décembre 2005 à 15:31:52 |
Re : compilation mai au lancement "erreur la memoire ne peu pas pas etre read"

touny23
|
merci de vos réponses si rapides. je vai essayer de comprendre maintenant
|
|
Cette discussion est classée dans : int, printf, tab, for, matrice
Répondre à ce message
Sujets en rapport avec ce message
Problem Affichage de mon Tableau [ par Orezza ]
salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le
help une fonction qui a besoin de vous [ par natacha86 ]
Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell
pb en c urgenttttttttttttttttt [ par natacha86 ]
bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as
Return tableau? [ par zut69 ]
Bonjour,Je suis en train d'écrire un petit programme sur les matrices en C, mais vu que je veux faire quelque chose d'assez général, j'ai besoin que d
Produit matriciel en c renvoit des valeurs complètement fausses [ par bilel59 ]
Bonjout à tous, je sollicite votre aide pour la raison indiquée dans le titre, en effet le produif matriciel que j'effectue renvoit des valeurs vraime
Problème générateur de grille de sudoku en C [ par Dovah ]
Bonjour, je suis débutant en programmation, et pour m'entraîner j'ai décidé de créer un programme qui génère aléatoirement une grille de sudoku en C
fonction en c [ par badsha ]
j'ai un code qui inverse une matrice et je veux l'appliquer sur plusieurs matrices je n'arrive pas à mettre à l'entrée de la fonction des matrices, je
la programmation de l'algorithme du simplexe [ par soums2009 ]
salut à tous j'ai un probleme avec mon code qui implemente l'algoritme du symplexe et je sollicite votre aide pour pouvoir terminer et rendre mon dev
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CXIMAGERE : CXIMAGE par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|