Erreur de segmentation
Fermé
SPC
Messages postés
4
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
21 octobre 2005
-
21 oct. 2005 à 15:06
kokher - 24 oct. 2007 à 20:49
kokher - 24 oct. 2007 à 20:49
A voir également:
- Erreur de segmentation
- Erreur 0x80070643 - Guide
- Segmentation fault (core dumped) ✓ - Forum Programmation
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
- Erreur 10016 epson - Forum Imprimante
- Erreur c2002 western union ✓ - Forum Vos droits sur internet
6 réponses
// reseau de canalisation
#include<stdio.h>
#include<stdlib.h>
struct troncon
{int origine; int extremite; int cout;};
void saisie (int np,int nt, struct troncon classement[])
{struct troncon x;
printf("Rentrer le nombre de points");
scanf("%d",&np);
printf("Rentrer le nombre de troncon");
scanf("%d",&nt);
for(int i=0;i<nt;i++)
{printf("donner l'origine du troncon de rang %d \n");
scanf("%d",&x.origine);
printf("donner l'extremite du troncon de rang %d\n");
scanf("%d",&x.extremite);
printf("donner le cout du troncon de rang %d\n",i);
scanf("%d",&x.cout);
classement[i]=x;}
}
struct troncon calcul (int nombreretenu, int np,struct troncon classement[])
{
int groupe[np];int rang=0;
for(int i=0;i<np;i++)
groupe[i]=i+1;
struct troncon canol;
struct troncon retenu[np-1];
int i=0;
while (nombreretenu < np)
{canol=classement[rang];
if (groupe[canol.origine] != groupe[canol.extremite])
{nombreretenu++;
for(int sommet=0;i<np;i++)
{if (groupe[sommet]==groupe[canol.extremite])
groupe[sommet]=groupe[canol.extremite];
}
retenu[i]=canol;
i++;
}
rang++;
}
return retenu[np-1];
}
int main()
{int np ;int nt;struct troncon x;
struct troncon classement[nt];
saisie(np,nt,classement);
int nombreretenu=0;
struct troncon retenu[np-1];
calcul(nombreretenu,np,classement);
printf("les troncons retenus sont");
for(int i=0;i<np-1;i++)
{printf("%d %d %d \n",retenu[i].origine,retenu[i].extremite,retenu[i].cout);}
}
#include<stdio.h>
#include<stdlib.h>
struct troncon
{int origine; int extremite; int cout;};
void saisie (int np,int nt, struct troncon classement[])
{struct troncon x;
printf("Rentrer le nombre de points");
scanf("%d",&np);
printf("Rentrer le nombre de troncon");
scanf("%d",&nt);
for(int i=0;i<nt;i++)
{printf("donner l'origine du troncon de rang %d \n");
scanf("%d",&x.origine);
printf("donner l'extremite du troncon de rang %d\n");
scanf("%d",&x.extremite);
printf("donner le cout du troncon de rang %d\n",i);
scanf("%d",&x.cout);
classement[i]=x;}
}
struct troncon calcul (int nombreretenu, int np,struct troncon classement[])
{
int groupe[np];int rang=0;
for(int i=0;i<np;i++)
groupe[i]=i+1;
struct troncon canol;
struct troncon retenu[np-1];
int i=0;
while (nombreretenu < np)
{canol=classement[rang];
if (groupe[canol.origine] != groupe[canol.extremite])
{nombreretenu++;
for(int sommet=0;i<np;i++)
{if (groupe[sommet]==groupe[canol.extremite])
groupe[sommet]=groupe[canol.extremite];
}
retenu[i]=canol;
i++;
}
rang++;
}
return retenu[np-1];
}
int main()
{int np ;int nt;struct troncon x;
struct troncon classement[nt];
saisie(np,nt,classement);
int nombreretenu=0;
struct troncon retenu[np-1];
calcul(nombreretenu,np,classement);
printf("les troncons retenus sont");
for(int i=0;i<np-1;i++)
{printf("%d %d %d \n",retenu[i].origine,retenu[i].extremite,retenu[i].cout);}
}
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
21 oct. 2005 à 15:51
21 oct. 2005 à 15:51
Salut,
donnes une taille explicite au tableau T
A+, crabs
donnes une taille explicite au tableau T
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 2000 int main( int argc, char** argv) { int i; int T[N]; srand((int)time(NULL)); for(i=0;i<N;i++) { T[i]=rand()%100; printf("%d \n",T[i]); } return 0 ; }
A+, crabs
SPC
Messages postés
4
Date d'inscription
vendredi 21 octobre 2005
Statut
Membre
Dernière intervention
21 octobre 2005
21 oct. 2005 à 19:36
21 oct. 2005 à 19:36
Ca marche !!!!!
Oh , joie !!! Merci crabs,c'est gentil d'avoir répondu, je n'osais esperer une solution si rapide !
Un petit #define et la vie est plus belle !
Oh , joie !!! Merci crabs,c'est gentil d'avoir répondu, je n'osais esperer une solution si rapide !
Un petit #define et la vie est plus belle !
salut tout le monde!
j'ai souvent ce genre de problemes des qu'il s'agit de manipuler des buffers.
j'ai meme essayé un petit programme volontairement simple :
main(int argc, char *argv[]) {
char buffer[32];
strcpy(buffer, argv[1]);
}
j'ai une erreur de segmentation à la compilation!!!!
pourtant j'ai defini une taille explicite à mon tableau!
quelqu'un peut m'aider?
merci.
j'ai souvent ce genre de problemes des qu'il s'agit de manipuler des buffers.
j'ai meme essayé un petit programme volontairement simple :
main(int argc, char *argv[]) {
char buffer[32];
strcpy(buffer, argv[1]);
}
j'ai une erreur de segmentation à la compilation!!!!
pourtant j'ai defini une taille explicite à mon tableau!
quelqu'un peut m'aider?
merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
23 janv. 2007 à 15:55
23 janv. 2007 à 15:55
Certainement parce que tu dépasse le taille de ton tableau non ?
Tu met quoi en argument à ton programme ?
Attention à ce que ta chaine en paramètre à ton programme ne dépasse pas une longueur de 31 sinon segment fault.
Tu met quoi en argument à ton programme ?
Attention à ce que ta chaine en paramètre à ton programme ne dépasse pas une longueur de 31 sinon segment fault.
Bonjour,
Voici un programme que je développe depuis pas longtemps et j'aimerais avoir votre aide dessus. Il est à noter que j'ai une erreur de segmentation à l'exécution.
#include <stdio.h>
#include "structure.h"
#include "fonction.h"
#define NMAX 22
int main(void){
int nb;
int i;
int *plat;
joueur tab[NMAX]; // joueur est une structure que j'ai défini dans le fichier structure .h
printf("Bienvenue sur la plate forme de notre jeu de role\n");
printf("Veuillez entrez le nombre de joueurs souhaites\n");
scanf("%d",&nb);
for(i=0;i<nb;i++){
tab[i]=creerPerso();
}
printf("%d \n",tab[0].troll.xp);
/* Le programme s'exécute jusque là et ensuite me marque une erreur de segmentation */
plateau(plat);
afficherPlateau(plat);
printf("de(10)=%d - de(6)=%d - de(20)=%d\n", de(10),de(6),de(20));
return 0;
}
Je serais très ravi d'avoir quelqu'un capable de résoudre mon problème. Merci d'avance !!
Voici un programme que je développe depuis pas longtemps et j'aimerais avoir votre aide dessus. Il est à noter que j'ai une erreur de segmentation à l'exécution.
#include <stdio.h>
#include "structure.h"
#include "fonction.h"
#define NMAX 22
int main(void){
int nb;
int i;
int *plat;
joueur tab[NMAX]; // joueur est une structure que j'ai défini dans le fichier structure .h
printf("Bienvenue sur la plate forme de notre jeu de role\n");
printf("Veuillez entrez le nombre de joueurs souhaites\n");
scanf("%d",&nb);
for(i=0;i<nb;i++){
tab[i]=creerPerso();
}
printf("%d \n",tab[0].troll.xp);
/* Le programme s'exécute jusque là et ensuite me marque une erreur de segmentation */
plateau(plat);
afficherPlateau(plat);
printf("de(10)=%d - de(6)=%d - de(20)=%d\n", de(10),de(6),de(20));
return 0;
}
Je serais très ravi d'avoir quelqu'un capable de résoudre mon problème. Merci d'avance !!