🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #9817

Re: pregunta estupida

#9817
From: zn�rt
Date: Mon, 06 May 2002 22:04
33 lines
2424 bytes
On Mon, 06 May 2002 21:32:49 +0100
Angel Suarez Rivero <srangel@teleline.es> wrote:

> Hola gente, tengo una duda con los arrays de char, que es la
> siguiente. 
> De toa la vida yo estaba convencido que foo[3] era un array de 4
> elementos. Pues ahora me encuentro discutiendo en un forum y me dicen
> que no, que es de tres, por el padding de las narices. Sab�is algo de
> esto.

No dices en que lenguaje :-)
En C, "char foo[3]" reserva espacio para 3 char, consecutivos. Osea 3
que son 3. Esos 3 pedazos pueden accederse usando un sub�ndice, que
empieza en 0, osea foo[0], foo[1] y foo[2]. foo[3] ser�a ilegal, en este
caso, y estar�a accediendo a memoria fuera del array.

Lo que te despista es el tema del sub�ndice. char foo[3]; declara un
array de 3 chars, pero foo[3] ser�a el 4� elemento de un array.

Esto, desde el punto de vista l�gico, siempre es as�.  En realidad,
debido a padding o alignement, internamente puede estar asignando m�s
espacio para alinear esos elementos adecuadamente (por lo que en
realidad, ya no ser�n estrictamente consecutivos). Esto var�a en funci�n
de la arquitectura, el tipo de dato, y el compilador o las opciones de
compilaci�n. En cualquier caso tienes garantizado que el desplazamiento
resultante de cada sub�ndice es el correcto, as� como el
incremento/decremento de punteros.

> 
> Gracias.

Denadas
zn�rt
Technical Details
Message-ID: <20020507000424.7cd57bbc.x@x.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!docsis72-60.menta.NET!not-for-mail
References: <3CD6E871.67C9C041@teleline.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,15ce2d5404a6373f
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-05-06 15:02:00 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!docsis72-60.menta.NET!not-for-mail
From: zn�rt <x@x.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: pregunta estupida
Date: Tue, 7 May 2002 00:04:24 +0200
Lines: 33
Message-ID: <20020507000424.7cd57bbc.x@x.com>
References: <3CD6E871.67C9C041@teleline.es>
NNTP-Posting-Host: docsis72-60.menta.net (62.57.72.60)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: fu-berlin.de 1020722519 16515543 62.57.72.60 (16 [134350])
X-Newsreader: Sylpheed version 0.7.4claws (GTK+ 1.2.10; i686-pc-linux-gnu)
X-Face: /z\)fslPy_Zv0Y>Z*ILZ}'F~pN!=%a2|TJ.6mJ?L5'IdP!z<bsd@#5wIgqKu11Py';Gt{V- G0<hnK!ihx6^6Krh8Y7fEz)~@&IM]RbOHX)'D_Q8^PS[iN!}!+XbFP--n*{Opwe7U/8u_P