Я использую MinGW studio, в которой компиллятор gcc со всеми вытекающими. В частности, можешь писать код в блокноте/vim'е/любом другом месте и компилить его из командной строки. а можешь и в мингв писать, там мне ничего не мешало. с прагмами, к примеру, гсс не дружит Ещё, насколько я помню, объявление массива переменной длины зависит от компиллятора и там где смотрел я делать так КРАЙНЕ не рекомендуют. В конце концов, напиши ты new или malloc, всё равно компиллятору придётся это делать за тебя а так ты это контролируешь.
у мейн в скобках - параметры запуска (те которые из командной строки вбиваются или в ярлычке прописываются например) инт это их количество, а следующее, насколько я помню, массив из argc+1 строк, в нулевой из которых содержится полный адрес а дальше - те самые параметры. В некоторых компилерах (вроде борланда) есть ещё третий параметр но я его не помню, лучше гуглить. Я, обычно, шапку пишу int main(void) потому что мне такк привычнее но это всё равно вопрос вкуса. вот.
з.ы. мингв скачать можно с помощью гугла, также могу свою старенькую закинуть куданить на обменник если хочешь.