【发布时间】:2011-02-15 17:49:13
【问题描述】:
我的程序出现了这种奇怪的行为,我无法弄清楚。我的教授向我展示了我的程序中的一个缺陷,我只是在构造一个对象时复制一个 char 指针,而不是制作整个数组的新副本,所以你可以玩弄它。他用类似的代码证明了这一点。
代码:
char sweat[] ="Sweater";
warenkorb = new WareImKorb(new Textil (205366,4.2,sweat,40),2,warenkorb);
sweat[0] = '\0';
现在如果我成功了:
char* sweat ="Sweater";
程序运行良好,直到我尝试汗水[0] = '\0'; 然后它就会崩溃。
但是这有效: char cc[] ="毛衣"; char* 汗水 = cc;
这真的让我很烦,我不明白,为什么版本 1 不起作用。 希望你们能帮帮我,否则我会疯了。
【问题讨论】:
-
第一个版本有什么问题?你为什么使用 char 数组而不是 std::string?