Это зависит от ОС и, возможно, от языка. Хороший C-ориентированный ответ заключается в том, что ОС создает пространство процесса (включая загрузку кода, создание кучи и стека и т. Д.). Затем он помещает вектор аргумента командной строки в определенное место, а затем копирует адрес вектора аргумента в «argv» в стеке, а количество слов в «argc».
Только после выполнения этих задач ОС разрешает выполнение процесса.