我想將一堆字符掃描到數組中。我已經使用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個字符。