Функция system () в C принимает один аргумент типа const char *
.Вот почему ваш первый пример работает (хотя ваш второй пример искажен).
Тем не менее, то, чего вы хотите, может быть достигнуто с помощью функции sprintf()
в stdio.h
.int a = 32; char command[80]; sprintf(command, "./my_prog %d", a); system(command);