Необходимо прочитать неопределенное количество целых чисел из стандартного ввода в массив

Поэтому я пишу учебную программу, которая будет принимать целые числа в качестве входных данных из stdin, загружать их в массив, сортировать массив и затем выводить результаты.

Я изо всех сил пытался выяснить, как работает IO в Си. Вот что у меня есть, пожалуйста, дайте мне знать, если вы видите какие-либо вопросы / есть какие-либо предложения. В идеале я хотел бы избежать использования буфера, но я не могу найти другой способ, позволяющий вводить данные переменного размера

Формат ввода: "10 20 30 11 666 1 235" ... и т. Д.

    // check if an input file is specified
    // If one is specified, then sort those numbers, otherwise pull from stdin
    if(inputFile == "stdin"){

            // Load stdin into a buffer
            char buffer[100];
            if(fgets(buffer, sizeof(buffer), stdin) == NULL) {
                    Handle_EOForIOError();
            }


            // Get a count of the numbers to create the array
            int numIntegers = 0;
            int num;
            while(sscanf(&buffer[0], "%d ", &num) == 1){
                    numIntegers++;
            }


            // Initialize the array with the proper size
            numbers = (int*)malloc(numIntegers*sizeof(int));

            // Load the integers into the array
            int i = 0;
            while(sscanf(&buffer[0], "%d ", &numbers[i]) == 1){
                    i++;
            }

    }

Ответы на вопрос(1)

Ваш ответ на вопрос