6

This my main function:

void main(int argc, char **argv)
{
    if (argc >= 4)
    {
        ProcessScheduler *processScheduler;
        std::cout <<
            "Running algorithm: " << argv[2] <<
            "\nWith a CSP of: " << argv[3] <<
            "\nFilename: " << argv[1] <<
            std::endl << std::endl;

        if (argc == 4)
        {
            processScheduler = new ProcessScheduler(
                argv[2],
                atoi(argv[3])
            );
        }
        else
        {
            processScheduler = new ProcessScheduler(
                argv[2],
                atoi(argv[3]),
                atoi(argv[4]),
                atoi(argv[5])
            );
        }
        processScheduler -> LoadFile(argv[1]);
        processScheduler -> RunProcesses();

        GanntChart ganntChart(*processScheduler);
        ganntChart.DisplayChart();
        ganntChart.DisplayTable();
        ganntChart.DisplaySummary();

        system("pause");

        delete processScheduler;
    }
    else
    {
        PrintUsage();
    }
}

The error I get when I compile is this:

Application.cpp:41:32: error: '::main' must return 'int'

It's a void function how can I return int and how do I fix it?

Michael
  • 3,093
  • 7
  • 39
  • 83
SPLASH
  • 115
  • 1
  • 2
  • 9

3 Answers3

9

Try doing this:

int main(int argc, char **argv)
{
    // Code goes here

    return 0;
}

The return 0; returns a 0 to the operating system which means that the program executed successfully.

Michael
  • 3,093
  • 7
  • 39
  • 83
7

C++ requires main() to be of type int.

roottraveller
  • 7,942
  • 7
  • 60
  • 65
Nick Pavini
  • 312
  • 3
  • 15
1

Function is declared as int main(..);, so change your void return value to int, and return 0 at the end of the main function.

renonsz
  • 571
  • 1
  • 4
  • 17