Что не так со следующим?
1. void getInput(int* output) {
Почему входной аргумент является int *, если вы хотите сохранить массив символов?
Вероятно
void getInput(char* output) {
лучше.
Кроме того, как вы узнаете, что указатель вывода указывает куда-то, где у вас достаточно памяти для записи ввода пользователя? Возможно, вы должны указать максимальную длину буфера в качестве дополнительного параметра, чтобы избежать ошибок переполнения буфера, как указано PW .
5. output[++i] = '\0';
я уже был увеличен на дополнительное время внутри цикла for, так что вы можете просто сделать:
output[i] = '\0';
Кроме этих, программа работает нормально и выводит то, что мы вводим до возврата.
FWIW, я проверил это, назвав его так:
int main(void)
{
char o[100];
getInput(o);
printf("%s", o);
return 0;
}