[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux-team] Question C et Linux
Soyons logique: tu défini un pointeur vers une chaine de caractère MAIS tu n'as
pas alloué de mémoire pour cette chaine
une meilleure réponse serait
char ptr[]="Hello"
(ça marche partout)
Bien à toi,
Dany
Eric Darchis wrote:
> Hello !
>
> J'ai une question difficile de C sur Linux. Considerons le programme suivant:
> /*** testeda.c ***/
> #include <stdio.h>
>
> main()
> {
> char *ptr="Hello";
> ptr[0]='P';
> }
> /**************/
>
> Ce programme marche sur Windows ainsi que sur la plupart des Unix que j'ai
> testes (Sinix, AIX, NCR, ...) sauf sur Linux. Sous Linux, j'ai un
> segmentation fault.
>
> Ceci dit, c'est normal. ptr est un pointeur. Ce pointeur est dans le
> segment de donnees et pointe sur une chaine dans le segment de code. Et le
> segment de code est cense etre read-only... D'ou l'erreur. Dans ce
> programme de test, il suffit de declarer char ptr[]="Hello" pour que la
> string soit allouee dans le segment de data mais dans le cadre du portage
> d'un certain soft, ce n'est pas utilisable.
>
> La question est: est-il possible de forcer GCC (ou egcs) a permettre ce
> genre de chose ?
>
> Et oui, j'ai RTFM. ;-)
>
> Eric.
>
> ---------
> This message was send by Majordomo 1.94.3. Please repport problems to
> manu@rtfm.be. If you want to be deleted from the list, send a mail to
> majordomo@rtfm.be with "unsubscribe linux-team" in the body.
---------
This message was send by Majordomo 1.94.3. Please repport problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.