我得到了我的程序的这种奇怪的行为,我无法弄清楚。我的教授向我展示了一个缺陷,在我的程序中,我只是在构建一个对象时复制一个字符指针,而不是创建整个数组的新副本,因此您可以使用它。他用类似的代码来证明这一点。尝试设置字符数组的字符时程序崩溃
的代码:
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 * sweat = cc;
这真的让我感到困扰,我不明白,为什么版本1不起作用。 希望你们能帮助我,否则我会疯狂地想知道这件事。
对第一个版本不起作用的是什么?你为什么使用char数组而不是std :: string? – CashCow 2011-02-15 18:00:39