char *nameRoom(int i) { char *bufferA, *bufferB, character, *roomDescription[MAX_ROOMS]; int bufferSize = DEFAULT_BUFFER_SIZE, roomNumber = 0, bufferStrlen; FILE *rooms; rooms=fopen(ROOMS_FILE, "r"); if ((rooms_file = fopen(ROOMS_FILE,"r")) == NULL) return -1; buffer_a = memset(malloc(bufferSize * sizeof(char)),'\0',1); do { if (strlen(bufferA) >= (bufferSize - 1)) { bufferB = bufferA; bufferSize *= 2; bufferA = memset(malloc(bufferSize * sizeof(char)),'\0',1); strcpy(bufferA,bufferB); free(bufferB); } if (((character = fgetc(rooms)) != EOF) && (character != DELIMETER)) { bufferAtrlen = strlen(bufferA); bufferA[bufferStrlen] = character; bufferA[bufferStrlen + 1] = '\0'; } else { roomDescription[roomNumber] = malloc((bufferA + 1) * sizeof(char)); roomDescription[roomNumber] = bufferA; bufferSize = DEFAULT_BUFFER_SIZE; bufferA = memset(malloc(bufferSize * sizeof(char)),'\0',1); roomNumber++; if (roomNumber >= MAX_ROOMS) return roomDescription[i]; } } while (!ferror(rooms)); return roomDescription[i]; }