begin process at 2012 05 29 17:02:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Probleme Erreur de segmentation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme Erreur de segmentation

vendredi 28 octobre 2011 à 16:39:39 | Probleme Erreur de segmentation

sivas58

Bonjour a tous;

J'ai besoins d'aide sur une erreur de segmentation.


Code C/C++ :
int decoupeLignePipe(char *chaine,char **commande1,char **commande2)
{
	int p,i,u,taille;
	int e=0;
	int j=0;
	int r=0,k=0;
	int pipe=0;
	for(i=0;i<10;i++) 
		commande1[i]=(char *)malloc(50);
	for(p=0;p<10;p++)
		commande2[p]=(char *)malloc(50);
	while(chaine[e]!=0)
	{
		while((chaine[e]>='a' && chaine[e]<='z')||(chaine[e]>='0' && chaine[e]<='9')||chaine[e]=='_'||chaine[e]=='.'|| chaine[e]== '-' || chaine[e]== '|')
		{
			if(chaine[e]=='|')
				pipe=1;
			if(pipe==1)
			{
				commande2[r][j]=chaine[e];
				e++;
				j++;			
			}	
			else
			{	
				commande1[k][j]=chaine[e];
				e++;
				j++;
			}
		}
		while(chaine[e]==' ')e++;
		if(pipe==1)
		{
			r++;
			j=0;
		}
		else
		{
			k++;
			j=0;
		}	
	}
	/*commande1[k]=NULL;*/
	commande2[r]=NULL;
	taille=k+r;
	return taille;
}
int main(int args,char **arg,char **envp)
{		
	int p;
	int k;
	char chaine[256];
	char **commande1;
	char **commande2;
	int taille=0;
	affichePrompt(envp);
	lit(chaine);
  	printf("commande saisie  : %s\n",chaine);
	int taille=decoupeLignePipe(chaine,commande1,commande2);
	for(p=0;p<taille;p++) {// pour tester cond
		printf("lu : %s\n",commande1[p]);	
  		}
}

Le probleme je ne comprend pas pourquoi ya cette erreur :

Program received signal SIGSEGV, Segmentation fault.
0x08048749 in decoupeLignePipe (chaine=0xbffff20c "sd s|sd ",
commande1=0xbffff254, commande2=0x15cf80) at minishelltest.c:75
75 commande2[p]=(char *)malloc(50);}
vendredi 28 octobre 2011 à 16:53:01 | Re : Probleme Erreur de segmentation

LA_Tupac

Membre Club
Bonjour, commence par utiliser ton debugger pour localiser la ligne qui génère le segfault
vendredi 28 octobre 2011 à 16:56:41 | Re : Probleme Erreur de segmentation

sivas58

Merci pour avoir repondu,
La ligne qui pose probleme c'est la ligne
Code C/C++ :
	for(p=0;p<10;p++)
		commande2[p]=(char *)malloc(50);
vendredi 28 octobre 2011 à 17:21:23 | Re : Probleme Erreur de segmentation

buno

Administrateur CodeS-SourceS
Hello,
Un SegFault arrive en cas de débordement de capacité mémoire. Du coup, ça veut dire que commande2 n'est pas assez grand...voire même qu'il n'est pas alloué...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
vendredi 28 octobre 2011 à 17:58:31 | Re : Probleme Erreur de segmentation

sivas58

J'ai essayer d'augmenter la taille de commande2 mais l'erreur est toujours presente.
J'ai allouer commande2 avec malloc :
Code C/C++ :
	for(p=0;p<10;p++)
		commande2[p]=(char *)malloc(50);
vendredi 28 octobre 2011 à 18:02:27 | Re : Probleme Erreur de segmentation

coucou747

Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

il manque :

char **commande1 = malloc(10 * sizeof(char *));
char **commande2 = malloc(10 * sizeof(char *));

Cordialement,

Maxime
vendredi 28 octobre 2011 à 18:10:13 | Re : Probleme Erreur de segmentation

sivas58

c bon ca marcheeeeeee
Merci Maxime

a+


Cette discussion est classée dans : int, chaine, char, commande2, commande1


Répondre à ce message

Sujets en rapport avec ce message

Conversion int 2 char [ par DeadStarXt ] Bonjour, Voila, je souhaiterai convertir un entier en chaine de caractère pour l'afficher après manipulation de cette chaine. Coment faire ? Merci transformer un int en chaine de caractère [ par lenneth666 ] Voila j'ai comme code ceci char *tmp2=(char *)malloc(5000); int res = 15; je voudrais savoir comment mettre res dans tmp2 le cast ne marche pas, et Runtime ?! [ par Chaminouonw ] Bonjour, je tente de faire un programme qui supprime les accents d'un fichier, voila mon source : #include #include convertir de int -> char [ par baby3378 ] bonjour a tous, voila je cherche un moyen de convertir une variable de type int vers une variable de type char [20] par exemple.PS:Comment peut on fai [.net c++] explication d'un code [ par stgi02 ] <span lang="EN-GB" style="FONT-SIZE: 10pt; COLOR: bl [help me!] - probleme cryptage simple de fichier [ par darthnexus ] Salut à tous!Je vous explique mon problème: j'ai commencé une petit programme de cryptage tout simple (je débute...) seulement voila cela fonctionne n Ordre dans les déclarations de variables ??! [ par vincemail ] Bonjour à tous, je suis en train de faire un programme en C++ avec devC++, et je viens de trouver un bug que je n'arrive pas à comprendre, je veux sto Lecture et ecriture sur fichier [ par developvbdebut ] Bonjour tout le mondeJe travaille sur la gestion des fichier en c.Mon livre n'explique pas clairement l'ectriture et la lecture dans les fichiers.Voic fichie texte [ par cedric3456 ] bonjour je suis tres nul en c++ je debute pouvez vous m'aidez je cherche a faire 3 fonction sur Dev-C++ 4.9.9.2fonction :ecrire (nom_fichier,chaine_ch insertion d'un int dans une chaine de caractère (string) [ par Apache_31 ] Bonjour j'ai un problème avec ma requête MYSQL.en effet j'utilise la fonction mysql_query(Connection,"insert into table values (valeur 1, valeur 2) ")


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,309 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales