落ちたり落ちなかったりする不具合…超ありがちな原因ですた。
適当に改変してあるけれど。

--- hoge.cpp ------------
const UINT MAX_SIZE = 40;
const char *ENV_VALUE = "JJJ";
  :
char *param[MAX_SIZE];
for(UINT i=0; i<MAX_SIZE; ++i) param[i] = new char[1024];
  :
// そんなことしたら、、、
if(適当な条件) param[10] = ENV_VALUE;
  :
// らめぇーーー
for(UINT i=0; i<MAX_SIZE; ++i) delete [] param[i];
-------------------------

コレってコンパイルする時に警告出なかったカナ?
手元では試してないので。