【VC++2008】ポインタ絡みのアサーションエラー。

「BLOCK_TYPE_IS_VALID(pHead->nBlockUse)」
というエラーが発生 (゚Д゚)!!!


発生した箇所は以下です。

char token = "\t";
char *afterToken = NULL;
mojiretu = strtok_s(line, token, &afterToken);
while(!ifs.eof()){
  char *line = new char[1000];
  ifs.getline(line, sizeof(line));
  mojiretu = strtok_s(line, token, &afterToken);
  String^ strBefore = gcnew String(mojiretu);
  String^ strAfter = "";
  arrBefore->Add(strBefore);
  countB++;


  delete  line;
}


これは、

char *line = new char[1000];

で作ったポインタを、

ifs.getline(line, sizeof(line));

で潰してしまっているにも関わらず、

delete [] line;

で消そうとしているからエラーになった模様(´・ω・`)
以下のように修正したところ、エラーは出なくなりました(・∀・)

char token = "\t";
char *afterToken = NULL;
char *mojiretu = NULL;
while(!ifs.eof()){
  //char *line = new char[1000];
  char line[5000];
  ifs.getline(line, sizeof(line));
  mojiretu = strtok_s(line, token, &afterToken);
  String^ strBefore = gcnew String(mojiretu);
  String^ strAfter = "";
  arrBefore->Add(strBefore);
  countB++;


  //delete  line;
}