나는 내 프로그래머의 이상한 행동을 알아 냈습니다. 알아낼 수 없습니다. 교수님이 내 프로그램에 결함이 있다는 것을 보여주었습니다. 전체 배열의 새로운 복사본을 만드는 대신 객체를 만들 때 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 * sweat = cc;
사실, 왜 버전 1이 작동하지 않는지 이해할 수 없다는 사실이 궁금합니다. 너희들이 나를 도울 수 있기를 바란다. 그렇지 않으면 내가 이것에 대해 궁금해 할 것이다.
첫 번째 버전에서 작동하지 않는 기능은 무엇입니까? 왜 std :: string 대신 char 배열을 사용하고 있습니까? – CashCow