Page 254

4.4 Redimensionamiento de la reserva de memoria palabra 0

a n u a l \0

1

d a d i v o s o \0

2

m a n o \0

3

t a c o \0

palabras

4

4

La ejecuci´ on de la asignaci´ on ha hecho que d->palabra[4] apunte al mismo lugar que d->palabra[3]. No hay problema alguno en que dos punteros apunten a un mismo bloque de memoria. En la siguiente iteraci´ on pasamos a esta otra situaci´on: palabra 0

a n u a l \0

1

d a d i v o s o \0

2

m a n o \0

3

t a c o \0

palabras

4

4

Podemos reordenar gr´ aficamente los elementos, para ver que, efectivamente, estamos haciendo hueco para la nueva palabra: palabra 0

a n u a l \0

1

d a d i v o s o \0

palabras

4

2

3

m a n o \0

4

t a c o \0

El bucle ha acabado. Ahora se pide memoria para el puntero d->palabra[i] (siendo i igual a 2). Se piden 6 bytes (((feliz)) tiene 5 caracteres m´as el terminador nulo): palabra 0

a n u a l \0

1

d a d i v o s o \0

palabras

4

2

3

m a n o \0

4

t a c o \0

Y, finalmente, se copia en d->palabra[i] el contenido de pal con la funci´on strcpy y se incrementa el valor de d->palabras: palabra 0

a n u a l \0

1

d a d i v o s o \0

2

f e l i z \0

3

m a n o \0

4

t a c o \0

palabras

5

248

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement