【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;
}