>  Q&A  >  본문

C++ CopyConstructor에서 예외가 발생했습니다! !

코드는 다음과 같습니다.

으아악

코드 설명: 이제 데이터 클래스에는 P_name, 주소 및 번호라는 세 개의 char* 멤버가 있습니다.

편집된 사진:

답변 부탁드립니다. 감사합니다! !

过去多啦不再A梦过去多啦不再A梦2721일 전826

모든 응답(3)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-05-31 10:41:26

    먼저 char *&source와 같은 매개변수가 char *const &source로 변경되고, 두 번째로 CopyStr(adata.P_name, P_name), 이런 매개변수가 CopyStr(P_name, adata.P_name)으로 변경됩니다.
    이것은 제가 테스트한 코드입니다. 직접 실행할 수 있습니다:

    으아아아

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-31 10:41:26

    CopyStr을 호출할 때 두 번째 매개변수(예: P_name)는 어디에서 나오나요?

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-05-31 10:41:26

    vs는 초기화되지 않은 메모리 영역을 0xCCCCCCCC(이것은 烫烫烫的由来);
    考虑到你访问到了0xCCCCCCCC,所以要不就是你传进去了个非法指针,要不就是这个char*指针对应的字符串没有以'0'结尾;
    可以试着输出一下source의 값이기도 함)로 채운 다음 포인터가 가리키는 데이터를 바이트 단위로 출력하려고 합니다

    회신하다
    0
  • 취소회신하다