Программа аварийно завершает работу при попытке установить символ массива символов. ⇐ C++
-
Anonymous
Программа аварийно завершает работу при попытке установить символ массива символов.
Моя программа ведет себя странно, и я не могу этого понять. Мой профессор показал мне недостаток в моей программе, где я просто копирую указатель на символ при создании объекта вместо того, чтобы создавать новую копию всего массива, так что вы можете с ним пошалить. Он продемонстрировал это с помощью подобного кода.
Для кода:
char Sweat[] ="Свитер"; warenkorb = new WareImKorb(new Textil (205366,4.2,sweat,40),2,warenkorb); пот[0] = '\0'; а если я вместо этого сделаю это:
char* Sweat ="Свитер"; Программа работает нормально, пока я не попробую Sweat[0] = '\0'; Тогда он просто выходит из строя.
Однако это работает: char cc[] ="Свитер"; char* пот = копия;
Меня очень беспокоит то, что я не понимаю, почему версия 1 не работает. Надеюсь, вы, ребята, сможете мне помочь, иначе я сойду с ума, задаваясь этим вопросом.
Моя программа ведет себя странно, и я не могу этого понять. Мой профессор показал мне недостаток в моей программе, где я просто копирую указатель на символ при создании объекта вместо того, чтобы создавать новую копию всего массива, так что вы можете с ним пошалить. Он продемонстрировал это с помощью подобного кода.
Для кода:
char Sweat[] ="Свитер"; warenkorb = new WareImKorb(new Textil (205366,4.2,sweat,40),2,warenkorb); пот[0] = '\0'; а если я вместо этого сделаю это:
char* Sweat ="Свитер"; Программа работает нормально, пока я не попробую Sweat[0] = '\0'; Тогда он просто выходит из строя.
Однако это работает: char cc[] ="Свитер"; char* пот = копия;
Меня очень беспокоит то, что я не понимаю, почему версия 1 не работает. Надеюсь, вы, ребята, сможете мне помочь, иначе я сойду с ума, задаваясь этим вопросом.
Мобильная версия