【发布时间】:2009-07-08 05:55:43
【问题描述】:
char *stringmult(int n)
{
char *x = "hello ";
for (int i=0; i<n; ++i)
{
char *y = new char[strlen(x) * 2];
strcpy(y,x);
strcat(y,x);
delete[] x;
x=y;
}
return x;
}
我正试图找出这部分的缺陷是什么。一方面,它删除 x,然后尝试将其值复制到 y。另一个是 y 是 x 的两倍,并且 y 永远不会被删除。有什么我想念的吗?而且,我需要弄清楚如何获得算法性能。如果您有一个快速链接来学习如何操作,我将不胜感激。
【问题讨论】:
-
请贴出完整代码。
-
甜蜜的僵尸耶稣是邪恶的代码。
-
@Earwicker:这使它成为'C with Classes'。我根本不会称它为 C++。
-
@rlbond:在 Java 中将所有内容放在
static void main(String[])下不会变成 C;像 C 一样使用 C++,不要让它变得更少 C++。 -
这个邪恶的代码对于求职面试非常有用。太棒了。
标签: c++ string algorithm memory-management