首先,我会告诉你我的代码。
std::ifstream file("accounts/22816.txt");
if(file){
char *str[50];
int count=0;
str[0] = new char[50];
while(file.getline(str[count], 50)){
count++;
str[count] = new char[50];
}
for(int i=0;i<count;i++){
std::cout << str[i] << std::endl;
}
delete[] str; // Here is the problem
}
上一代码的行为是:
and this reason of the
problem
。测试我的应用程序时总是给我运行时错误消息_block_type_is_valid(phead- nblockuse).
我知道这个问题,因为delete[] str;
答案 0 :(得分:1)
str
是一个指针数组,每个指针都指向一个动态分配的数组。
您需要遍历它并在每个元素上调用delete []
。
for(int i=0; i < count; ++i){
delete [] str[i];
}
注意:我已经为OP提供了an example using std::vector
, std::string
and std::getline
。