Article View: es.comp.os.linux.programacion
Article #11674Re: Segmentation fault
From: Gonzalo Higuera
Date: Tue, 16 Oct 2001 21:57
Date: Tue, 16 Oct 2001 21:57
50 lines
3085 bytes
3085 bytes
On Tue, 16 Oct 2001 20:57:41 +0100,
=?iso-8859-1?Q?=C1ngel=20Su=E1rez?= Rivero <srangel@teleline.es>
wrote:
>Gonzalo Higuera wrote:
>>
>> >
>> >Tambi�n puedes asociar memoria a un puntero en la declaraci�n:
>> >
>> >char *name="0123456789"; /*Cada car�cter representa un byte de memoria
>> >reservada/
>>
>> Esta no es una forma adecuada de reservar memoria. Una cadena
>
>:O De donde sacates esta info. De todas formas yo no he dicho que esta
>sea una forma de reservar memoria, si no de inicializar un puntero con
>memoria reservada para una cadena determinada.
Mis disculpas, quiz�s no me expres� con suficiente claridad. Es
cierto que es perfectamente leg�timo inicializar un puntero mediante
una constante de cadena. Hice el comentario porque el autor del
mensaje original quer�a usar el puntero como destino de strcpy, y por
tanto debe estar apuntando a una zona de memoria sobre la que se pueda
escribir. Por ejemplo, el resultado de strcpy no est� definido:
char *foo="Fuente", *bar="Destino";
strcpy(bar, foo);
Obs�rvese c�mo la direcci�n de destino, bar, apunta a una cadena
definida en tiempo de compilaci�n, estructura que posiblemente haya
sido asignada a una zona de memoria de s�lo lectura. En cambio, si los
punteros se inicilizan como
char *foo="Fuente", bar[]="Destino";
no habr� problema alguno, ya que lo que se est� haciendo es
inicializar un array con los valores dados por la constante de cadena
"Destino". Viene comentado al principio de la seccion 5.5 del K&R2
("El lenguaje de programaci�n C", Kerninghan y Ritchie).
Mi respuesta puntillosa es culpa de una deformaci�n causada por
seguir el grupo en ingl�s comp.lang.c, maravillosa fuente para
cualquier asunto relacionado con el C est�ndar (ANSI-C, C90, C99). Es
muy aconsejable leer su excelente FAQ, y en caso de querer participar,
rondar el grupo un tiempo (�meses, a�os?) porque surgen aut�nticas
pira�as en cuanto la pregunta se sale del temario del grupo o es una
pregunta frecuente. Pero si la pregunta es justificable, seguro que
alguien dar� una respuesta fiable.
Gonzalo.
Technical Details
Message-ID:
<3bcca4b5.20812312@news.mad.ttd.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mailReferences:
<lnhip9.bq.ln@xxx.com> <slrn9rpltn.l8.sromero@compiler.linux.es> <8s0jp9.cp.ln@xxx.com> <3BBE0FD7.EAE56E36@teleline.es> <3bcc65c9.4701509@news.mad.ttd.net> <3BCC9135.6E5F5A96@teleline.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,b3c8decf211f42e0 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-10-16 14:58:43 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mail From: palantios@hotmail.com (Gonzalo Higuera) Newsgroups: es.comp.os.linux.programacion Subject: Re: Segmentation fault Date: Tue, 16 Oct 2001 21:57:27 GMT Organization: Telefonica Transmision de Datos Lines: 50 Message-ID: <3bcca4b5.20812312@news.mad.ttd.net> References: <lnhip9.bq.ln@xxx.com> <slrn9rpltn.l8.sromero@compiler.linux.es> <8s0jp9.cp.ln@xxx.com> <3BBE0FD7.EAE56E36@teleline.es> <3bcc65c9.4701509@news.mad.ttd.net> <3BCC9135.6E5F5A96@teleline.es> NNTP-Posting-Host: 217-126-173-123.uc.nombres.ttd.es X-Newsreader: Forte Free Agent 1.11/32.235