Di quale compilatore dovrei fidarmi?

Questo sarà un po ‘una domanda da principianti, ma stavo cercando di lavorare su un piccolo esercizio nel linguaggio C (non C ++ ) e mi sono imbattuto in alcuni problemi.

Diciamo che volevo usare una matrice all’interno di un metodo le cui dimensioni dipendevano da uno degli argomenti:

void someFunc(int arSize) { char charArray[arSize]; // DO STUFF ... } 

Quando provo a compilarlo come file .c in Visual Studio 2013, viene visualizzato un errore che indica che non è consentita una dimensione di matrice non costante. Tuttavia lo stesso codice funziona con CodeBlocks sotto un compilatore GNU. Di chi dovrei fidarmi? È normale che i compilatori si comportino in modo così diverso? Ho sempre pensato che se stai facendo qualcosa a cui un compilatore non piace, non dovresti farlo in primo luogo perché non è uno standard.

Qualsiasi input è utile! Vengo da uno sfondo in Python e sto cercando di coinvolgermi maggiormente nella programmazione con Data-Structures and Algorithms.

La mia piattaforma è Windows, come probabilmente puoi dire. Per favore fatemi sapere se questa domanda ha bisogno di ulteriori informazioni prima che possa essere risolta.