[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux] [devel] Petit soucis avec C.



Ca doit etre quelque chose comme ca.

Dans le premier cas, on a cree un tableau qui contient assez de place pour 
placer la chaine "Ceci est un test".  Et donc chaque "case" du tableau est 
accessible.

Dans le second cas, seule la place memoire pour stocker un pointeur a ete 
reservee (comme on me l'a signale).  La chaine "Ceci est un test" est stockee 
quelque part mais sous forme de constante, je suppose.  Donc on peut y 
acceder en lecture mais pas en ecriture.

Philippe

Le Dimanche  1 Juillet 2001 20:13, Pablo Saratxaga a écrit :
> Kaixo!
>
> On Sun, Jul 01, 2001 at 10:45:00AM +0200, CHARLIER Philippe wrote:
> > 	char p_char[] = "Ceci est un test";
> > 	*(p_char + 2) = 'l';
> > Ca marche, par contre, comme suit :
> >
> > 	*p_char = "Ceci est un test";
> > 	*(p_char + 2) = 'l';
> > Donne une Segmentation Fault ???
>
> oui. Je crois que dans le 2e cas c'est de la mémoire non accessible en
> écriture.
> Dites-moi si je me trompe, mais le premier cas c'est comme si on
> avait:
>
> 	char *a = "Ceci est un test";
> 	char p_char[17];
>
> 	strcpy(p_char,a);
>
> ou
>
> 	char *a = "Ceci est un test";
> 	char *p_char;
>
> 	p_char = malloc(17);
> 	strcpy(p_char,a);
>
>
> non ?

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ http://LinuxBe.org              Contact: listmaster@linuxbe.org  ]