Probleme d'execution d'un programme en C
melanie
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait un programme en langage c et à chaque fois que je l'execute un message s'affiche comme quoi mon
programme a rencontré un probleme et doit fermer...
merci d'essayer de m'aider je vous donne mon programme:
#include<stdio.h>
#include<stdlib.h>
int ecrire (char *nom,int *tab,int taille){
int i;
FILE *f=fopen(nom,"w");
fprintf(f,"%d\n",taille);
for(i=0;i<taille;i++){
fprintf(f,"%d\n",tab[i]);
}
fclose(f);
return 0;
}
int main (int argc,char **argv){
int i;
int *tab;
int taille;
srand(10);
printf("Entrez la taille du tableau :\n");
scanf("%d",&taille); /*jusque là il arrive à executer mais il n'arrive pas à faire la suite */
tab=(int *)malloc(taille*sizeof (int));
if(tab==NULL) return 0;
for(i=0;i<taille;i++){
tab[i]=rand()%1000;
}
ecrire(argv[1],tab,taille);
system("pause"); /* je l'utilise à cause de DEV C++*/
return 0;
}
j'ai fait un programme en langage c et à chaque fois que je l'execute un message s'affiche comme quoi mon
programme a rencontré un probleme et doit fermer...
merci d'essayer de m'aider je vous donne mon programme:
#include<stdio.h>
#include<stdlib.h>
int ecrire (char *nom,int *tab,int taille){
int i;
FILE *f=fopen(nom,"w");
fprintf(f,"%d\n",taille);
for(i=0;i<taille;i++){
fprintf(f,"%d\n",tab[i]);
}
fclose(f);
return 0;
}
int main (int argc,char **argv){
int i;
int *tab;
int taille;
srand(10);
printf("Entrez la taille du tableau :\n");
scanf("%d",&taille); /*jusque là il arrive à executer mais il n'arrive pas à faire la suite */
tab=(int *)malloc(taille*sizeof (int));
if(tab==NULL) return 0;
for(i=0;i<taille;i++){
tab[i]=rand()%1000;
}
ecrire(argv[1],tab,taille);
system("pause"); /* je l'utilise à cause de DEV C++*/
return 0;
}
A voir également:
- Probleme d'execution d'un programme en C
- Mettre en veille un programme - Guide
- Programme demarrage windows - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
3 réponses
Salut,
J'ai pas tout regardé, mais j'ai déjà vu une erreur :
dans la fonction main :
mets int tab tout simplement au lieu int *tab;
Cdlt
J'ai pas tout regardé, mais j'ai déjà vu une erreur :
dans la fonction main :
mets int tab tout simplement au lieu int *tab;
Cdlt
Voici ma proposition :
#include<stdio.h>
#include<stdlib.h>
int ecrire (char *nom,int *tab,int taille){
int i;
FILE *f=fopen(nom,"w");
fprintf(f,"%d\n",taille);
for(i=0;i<taille;i++){
fprintf(f,"%d\n",tab[i]);
}
fclose(f);
return 0;
}
int main(){
int tab[3]={7,9,9};
ecrire("uuuuu.txt",tab,5);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int ecrire (char *nom,int *tab,int taille){
int i;
FILE *f=fopen(nom,"w");
fprintf(f,"%d\n",taille);
for(i=0;i<taille;i++){
fprintf(f,"%d\n",tab[i]);
}
fclose(f);
return 0;
}
int main(){
int tab[3]={7,9,9};
ecrire("uuuuu.txt",tab,5);
return 0;
}
ceci pourrait aider au débuggage :
FILE *f=fopen(nom,"w");
il faudrait vérifier que le pointeur n'est pas NULL avant d'écrire dans ce fichier !
De plus, en parlant de vérification de pointeur NULL,
if(tab==NULL) return 0;
au lieu de quitter directement un petit message servirait à voir s'il y a eu un problème à cet endroit. (Idem pour le test que je viens de te conseiller de mettre)
d'autre part n'oublie pas de libérer la mémoire allouée avec malloc avec la commande free !
FILE *f=fopen(nom,"w");
il faudrait vérifier que le pointeur n'est pas NULL avant d'écrire dans ce fichier !
De plus, en parlant de vérification de pointeur NULL,
if(tab==NULL) return 0;
au lieu de quitter directement un petit message servirait à voir s'il y a eu un problème à cet endroit. (Idem pour le test que je viens de te conseiller de mettre)
d'autre part n'oublie pas de libérer la mémoire allouée avec malloc avec la commande free !