프로그래밍 : Bjarne Stroustrup이 C++을 사용하여 원칙 및 실습을하고 27 장에 비명을 지르는 부분이 생겼습니다.프로그래밍 원리 및 연습 제 27 악착 난 목록 실수?
이struct List* lst = (List*)malloc(sizeof(struct List*));
이이 같이 작성해서는 안 내 질문은 : 그것은이 코드 라인
struct List* lst = (List*)malloc(sizeof(struct List));
내가 처음 버전으로 프로그램을 컴파일 할 때, 그것은 잘 작동하지만 내가 가진 본 malloc은 두 번째 버전으로 사용됩니다.
제 궁금한 점은 어떤 버전이 맞으며 그 차이점은 무엇입니까?
추 신 :이 책은 C++에 관한 것이지만,이 장에서는 C로 작성하는 방법을 제시하려고합니다. 따라서 실제로는 C 프로그램입니다.
관용적 인 C++이가는 한 어느 쪽도 정확하지 않습니다. malloc은 생성자를 호출하지 않기 때문에 – StoryTeller
C++의 발명가가 (기본적으로) C 코드를 작성하고 C 코드도 잘못되었을 수 있습니다. 어쩌면 그는 C에 대한 나쁜 예를 보여주고 C++로 작성해야하는 것과 대조하는 프로그램을 작성했을 것입니다. 문맥이 없기 때문에 책이 없거나 쉽게 사용할 수있는 것을 알기가 거의 어렵습니다. 아무 의미가있을 수있는 코드 두 줄만 있습니다. –
@Someprogrammerdude는이 경우가 아니며 첫 번째 오류는 틀린가요? 여기에 너무 분명한 것을 놓치고 있습니까? –