Closed JuaniRaggio closed 3 months ago
Realice las funciones put y copys que son para agregar un texto que puede ser muy extenso pero me fallan
#define BLOCK 100 struct phrase{ char * txt; size_t length; size_t allocated; }; struct phrasesCDT{ size_t keyFrom; size_t keyTo; struct phrase * key; size_t usedKeys; }; void copys(phrasesADT p, size_t key, const char * phrase){ if(p->key[key].length == 0) p->usedKeys++; int i = 0; while(phrase[i] != '\0'){ if(p->key[key].allocated == i){ p->key[key].allocated += BLOCK; p->key[key].txt = realloc(p->key[key].txt, p->key[key].allocated); } p->key[key].txt[i] = phrase[i]; i++; } p->key[key].txt[i] = '\0'; p->key[key].length = i - 1; } /* * Agrega una frase. Si la clave key es inválida retorna 0, sinó retorna 1 (uno) * Si ya hay una frase asociada a la clave, actualiza la frase almacenada, * reemplazándola por el parámetro phrase. * Se almacena una copia de la frase. */ int put(phrasesADT ph, size_t key, const char * phrase){ if(ph->keyFrom > key || ph->keyTo < key) return 0; key = key-ph->keyFrom; copys(ph, key, phrase); return 1; }
Realice las funciones put y copys que son para agregar un texto que puede ser muy extenso pero me fallan