単にメモリ確保の方法が違っていただけでしょ。
VCの場合、偶然か何らかの都合かで配列の直後に空きがあったからヌルが格納されただけ。
(全く別の数値0x00データの可能性もあるけど)
gccの場合は、配列の直後に別変数が割り当てられてヌルが上書きされてる。
(コードからchar型ポインタの一部の可能性が高い)
どちらにせよ配列のオーバフロー時の動作は保証されない。