Я пытаюсь сканировать кучу символов в массив. Я использовал malloc для установки исходного размера массива, но я хочу использовать realloc для увеличения размера, если пользователь вводит больше символов, чем позволяет начальный размер. Я не совсем уверен, где поставить realloc, или если он должен быть в условном выражении.Использование realloc для увеличения размера массива
char *strscan(void) {
int size = sizeof(char) * 10;
char *a = malloc(size);
// Below I try to read character input from the user and store it in the array.
while (a != EOF) {
scanf("%c", a);
if (trace) printf("%c", *a);
++a;
a = realloc(a, 2 * size);
}
return a;
}
На данный момент я все еще получаю переполнение буфера кучи при вводе, например, 15 символов.