问问题
25837 次
3 回答
11
您的错误位于代码的以下部分:
char path[] = new char[pathSize];
delete &path;
将其更改为...
char *path = new char[pathSize];
delete[] path;
于 2013-07-10T15:53:47.380 回答
4
首先,char path[]
应该是char* path
。其次,它的delete[] path;
. 如果你new[]
你delete[]
如果new
你delete
。
gcc 有一个扩展(请注意这不是标准的),它允许您执行此操作:
int main(int argc, char* argv[])
{
int size = 34;
char path[size];
return 0;
}
但是,这仅适用于 gcc,因为这是 gcc 扩展。
于 2013-07-10T15:53:23.350 回答
0
您应该使用动态数组。
char* path = new char[pathSize];
并且正如其他人提到的那样,删除只需要新的,因此您确实需要它,但是您的代码编写方式并不是您通常希望使用的删除方式
于 2013-07-10T15:55:07.413 回答