【发布时间】:2012-11-29 10:05:56
【问题描述】:
我真的对这个抛出错误感到困惑......
char** results = new char*[numRes]; //this is where it breaks
for(int i = 0; i < numRes; i++)
{
results[i] = new char[64];
}
它引发了堆损坏错误。但它肯定应该工作吗?我将 4 char* 分配给字符指针列表,以便我可以将它们传递给函数等。
我到处看了看,但它们似乎都在显示 malloc 和 free...我在课堂上使用它们,所以我想坚持使用 c++ new 和 delete。
有人可以帮帮我吗?
【问题讨论】:
-
你是如何完成这项任务的?
results[0]=&char1;或完全不同的东西? -
for (int i = 0; i
-
你会在要写入字符串的地方添加一个 sn-p 代码吗?
-
这只是 main() 中的一个简单的内存分配......如果我什至不能让它首先创建点数组,那我该怎么做并不重要?但我打算使用 strcpy(results[n],somestring)
-
@Programmer 我在 2012 年写了这篇文章,当时我还是一个编程新手。我最初共享的代码中没有任何内容对我来说是错误的。我假设这里发生的事情是我在程序中早些时候破坏了内存,当它在这里分配内存时它会崩溃。我会倾向于这种情况,尤其是我说它崩溃的那条线。
标签: c++ memory pointers char allocation