gcc 3.3.1 (cygming special) + cygwin 1.5.5 (0.94/3/2) + Windows XP Professional (SP2適用済、RAMは768 MB)で質問です。
--
#define PARAMETER_NUMBER 162905984
#include <stdio.h>

char parameter[PARAMETER_NUMBER];

int main(void)
{
printf("%d\n", sizeof(parameter));
}
--
上記プログラム(といえるほどのものではありませんが)をgccでコンパイルして実行したところ
正常にsizeofの結果を表示してくれるのですが、

#define行を
#define PARAMETER_NUMBER 162905985
とするとコンパイルできるものの実行してもsizeofの結果を返してくれません。

この問題を回避する方法、つまり
グローバル変数領域を確保し、かつ正常にプログラムを実行する方法を
教えていただけませんでしょうか。

メモリは不足していない(と思います)し、また同じプログラムをlinuxやsolarisでコンパイルした場合は
同様の現象は再現できません。