inflearn logo
강의

Course

Instructor

Linear Data Structures for People Who Learned C the Hard Way

RangeSearch002 의 singlelist.c 파일 중 질문 있습니다.

Resolved

192

clang

2 asked

0

강사님 안녕하십니까. 양질의 수업을 제공해주셔서 잘 듣고 있습니다.

 

다름아니고 질문이 있어서 여쭙고자 게시글 남깁니다.

다름아니고 RangeSearch002 프로젝트 중 singlelist.c 파일의 SearchByAgeRange 함수에서 아래와 같은 코드에서 이해가 되지 않는 점이 있습니다.

 

"""

void** pNodePtrList = malloc(sizeof(void*) * cnt);

"""

 

본 질문의 목적은 아래와 같습니다.

ㅇ malloc을 할 때 왜 따로 타입캐스팅을 하지 않았는가?

 

검색해서 찾아봤을 때 malloc은 타입캐스팅을 해도 되고 안 해도 되지만 제가 한다면 (void *)malloc 으로 썼을 거 같으며, 디버깅했을 때 결과도 동일한 결과물을 제공하는 것으로 확인했습니다.

혹시 잘못된 점이 있으면 따끔한 지적 부탁드리겠습니다.

 

감사합니다. 좋은하루 되십시오.

c 코딩-테스트 알고리즘 vc++

Answer 1

0

nullnull8537

C언어는 void* 형식에 대해 굳이 타입 캐스팅을 하지 않아도 무방합니다. 그리고 반환 형식은 void* 입니다. 그러므로 굳이 (void*)malloc() 같은 코드는 필요하지 않겠습니다. 오히려 지금 상황에서 굳이 캐스팅을 하자면 (void**)로 캐스트 하는 것이 맞겠습니다.

그런데 그 보다 더 중요한 것은 pNodePtrList가 USERDATA*에 대한 포인터가 아니라 void**로 선언했는가 입니다. 결과만 말씀드리면 이는 추상자료형을 적용하기 위한 포석이기 때문입니다. 참고하시기 바랍니다. 😄

05_adtFileIO 개정이력에 대한 질문

0

42

2

마지막 열의 노드를 삭제하였을때 읽기 엑세스 위반 발생 건

0

61

2

첫번째 루프에서 최소값을 못찾았는데 계속 진행하는 이유가 무엇인가요?

0

47

1

[질문]: [섹션4] -> [2중 연결 리스트로 전환] -> [21:30]

0

129

2

인덱스정렬 강의, 04_ListAndIndex질문드립니다.

0

125

1

예제는 어디서 다운로드 받을 수 있나요?

0

178

2

04_MultiIndex 예제에서 질문이 있습니다

0

120

1

헤드노드에 관해..

0

231

3

AddNewNode 함수 구현시 질문입니다.

0

160

2

Event Loop

0

191

1

인덱스정렬 강의, 04_ListAndIndex질문드립니다.

0

192

1

CPU의 다른 이름 Machine 강의 질의

0

273

4

스택의 POP코드 질문드립니다.

0

259

1

adtFileIO 예제코드관련 질문 있습니다.

0

170

1

ADT강의 관련 질문 있습니다.

0

231

2

섹션4 자료 자체와 정렬된 인덱스 분리 내용 질문

0

252

2

자료 자체와 정렬된 인덱스 분리 강의에서 질문

0

234

2

구현 연습에 대한 개인적 의문

0

279

1

05_adtFileIO 프로젝트 문의

0

318

2

CLI UI적용 강의에서 질문드립니다.

0

333

1

SearchToRemove와 RemoveNode가 분리되어야 할 필요가 있을까요?

0

293

1

05_adtFileIO 프로젝트 문의

0

257

1

자료 자체와 정렬된 인덱스 분리 (인덱스 정렬) - 인덱스 범위 코드에 버그가 있어서 질문 드립니다.

0

304

2

강의자료 관련

0

203

1