rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 5int str_sort(const void *a, const void *b){ return strcmp(*(char **)a, *(char **)b);}void *alloc_array(void *prev, size_t *sp, size_t use, size_t size){ void *temp; temp = prev; if (prev) { if (use % (size * SIZE) == 0) { *sp += size * SIZE; temp = realloc(temp, *sp); memset(&((char *)temp)[*sp - (size * SIZE)], 0, size * SIZE); } }else{ *sp = size * SIZE; temp = malloc(*sp); memset(temp, 0, *sp); } return temp;}int main(void){ char temp[64]; char gomi; char **word_list = NULL; size_t size; size_t use; int c; int i; c = -1; use = 0; while (1) { scanf("%[^\n]%c", temp, &gomi); if (strncmp("END", temp, 4) == 0) { break; } word_list = alloc_array(word_list, &size, use, sizeof(char *)); c++; word_list[c] = malloc(sizeof(char) * 64); strncpy(word_list[c], temp, 64); use += sizeof(char *); } printf("Before: \n"); for (i = 0; i <= c; i++) { printf("[%d] = %s\n", i, word_list[i]); } qsort(word_list, c + 1, sizeof(char *), str_sort); printf("After: \n"); for (i = 0; i <= c; i++) { printf("[%d] = %s\n", i, word_list[i]); } return 0;}