[C con Clase] Ayuda con Diferentes Dudas

Steven Davidson steven en conclase.net
Sab Ene 27 07:27:06 CET 2007


Hola David,

El pasado 2007-01-27 04:19:43, David Reza escribió:

DR> Ok. Sólo me quedan estas dudas:
DR> Concretamente lo que me gustaría entender es lo siguiente:

Veamos las dudas.

DR> > La unidad de información básica es la palabra, dependiendo del tipo de
DR> > microprocesador una palabra puede estar compuesta por dos, cuatro, ocho o
DR> > dieciséis bytes. Hablaremos en estos casos de plataformas de 16, 32, 64 ó
DR> > 128 bits. Se habla indistintamente de direcciones de memoria, aunque las
DR> > palabras sean de distinta longitud. Cada dirección de memoria contiene
DR> > siempre un byte. Lo que sucederá cuando las palabras sean de 32 bits es 
DR> > que accederemos a posiciones de memoria que serán múltiplos de 4.
DR> >

Esto viene a ser lo que expliqué en mi mensaje anterior. Internamente, se manipula un tamaño "cómodo" de bytes por el procesador. A este tamaño lo llamamos "palabra" o "word", en inglés. Las direcciones de memoria indican localizaciones de un solo byte. Para otras operaciones, se suele manipular los datos como "palabras". Dicho de otra manera, se manipula cantidades de bytes agrupadas en "palabras" que puede ser de 1, 2, 4, 8, 16 bytes o más.

DR> Y lo siguiente:
DR> > El puntero índice podría tener por ejemplo, el valor 3, en ese caso,
DR> > *indice tendría el valor 'valor3'.
DR> >
DR> > Las celdas de memoria existirán independientemente del valor de indice, o
DR> > incluso de la existencia de indice, por lo tanto, la existencia del
DR> > puntero no implica nada más que eso, pero no que el valor de la dirección
DR> > que contiene sea un valor válido de memoria.
DR> >

Esto explica que las direcciones de memoria siempre existen, tanto si usamos punteros como si no. Lo que hay que tener en cuenta es que si vamos a manipular direcciones de memoria éstas deben ser válidas, ya que de lo contrario podemos estar accediendo datos sin permiso.


Espero que esto te aclare las dudas.

Steven


Más información sobre la lista de distribución Cconclase