Мне нужно создать программу для университета, и есть сайт, который проверяет, сколько памяти я использую. С тем же входным сигналом, если я скомпилирую свою программу на моем компьютере и запустлю ее с помощью valgrind, он скажет, что общее использование кучи составляет 77 Кбайт, примерно 75 Кб.
Но когда я отправляю его на веб-сайт, с тем же вводом, использование памяти приводит к 384 кб, и я не понимаю, вальгринд лжет, или сайт пьян. Я подозреваю, что я компилирую свою программу с простым
gcc myprog.c -o myc
в то время как веб-сайт университета компилирует это:
/usr/bin/gcc -DEVAL -std=c11 -O2 -pipe -static -s -o program programname.c -lm
Я ничего не знаю об этой команде компиляции, профессор только что написал, что она используется на веб-сайте, и я тоже могу использовать ее на своем компьютере.
Если я использую эту команду компиляции, программа работает нормально, но когда я пытаюсь использовать valgrind для исполняемого файла, созданного им, она останавливается и говорит, что не может продолжить.
Итак, вопрос вкратце: почему я вижу разницу в выделенной памяти? Это из-за чего-то, что делает эта команда компиляции?