Para comenzar, estoy creando una cadena de char.
Código C:
//Donde tamano es la cantidad de bytes que el usuario pide.Ver original
ahora, tengo que escribir fragmentos de texto en esa cadena, en diferentes posiciones.
Pongamos este caso, el usuario pide 100 como tamano. Creo la memoria total con un tamaño de 100.
El usuario pide que escriba 20 veces la letra a, escribo desde la posición 0 a la 19 del arreglo, la letra a.
El usuario pide que escriba 15 veces la letra d, escribo desde la posición 20 a la 34 del arreglo, la letra d.
El usuario pide que escriba 10 veces la letra j, escribo desde la posición 35 a la 44 del arreglo, la letra j.
El usuario pide que imprima la memoria. Imprimo:
aaaaaaaaaaaaaaaaaaaadddddddddddddddjjjjjjjjjj
El usuario libera la letra a, y tengo y los primeros 20 espacios libres.
El usuario pide que escriba la letra t 12 veces, escribo desde la posición 0 hasta la 11 con la letra t.
El usuario pide que muestre la memoria. Imprimo:
ttttttttttt.
El problema está cuando quiero escribir en la primera posición del arreglo de "memoria", porque cuando escribo en la primera posición, entonces pierdo la referencia a todos los elementos siguientes de arreglo. Es decir, me está creando un arreglo nuevo.
¿Alguna sugerencia para que esto no suceda?
Dejo aquí el código:
Código C:
Ver original
/*escribe el texto <nombre>, desde la posicios <pos>, hasta la posición <pos + mem> en la memoria simulada. */ int escribir(char *nombre, int pos, int mem) { int i = 0; for(i; i<mem;) { int j=0; { if(i>=mem)break; i++; } } }