인덱스정렬 강의, 04_ListAndIndex질문드립니다.
안녕하세요 강사님
04_ListAndIndex의 원본 코드의 signleList.c파일의
SearchByIndexAgeRange함수의 354번째 줄 라인에서
int length = idxMax - idxMin + 1;
USERDATA** aSelected = malloc(sizeof(void*) * length);
memcpy(aSelected, aList + idxMin, sizeof(void*) * length);와 같이 aSelected의 리턴 타입이 USERDATA** 인데
왜 malloc으로 생성할때, "malloc(sizeof(void*) * length);"로
왜 void*의 size만큼 생성해주는지 잘 모르겠습니다.
USERDATA** aSelected = malloc(sizeof(USERDATA*) * length);다음 위의 코드처럼 "malloc(sizeof(USERDATA*) length);"즉, USERDATA*의 size가되어야 알맞지 않나요??
아니면 USERDATA*와 void* 모두 크기가 8byte라서 메모리가 할당되는 크기가 같은건가요?? 제가 알고 있는 개념이 맞는걸까요??
강의 잘 듣고있습니다 감사합니다.
Answer 1
1
포인터가 가리키는 대상 자료형이 무엇이건 포인터 변수의 크기는 같습니다. 32비트 시스템이면 32비트, 64비트 시스템이면 64비트 크기를 갖습니다. 그러므로 USERDATA*나 void*의 크기는 같습니다. 따라서 malloc() 함수로 할당받는 메모리의 크기는 동일합니다.
그런데 제가 굳이 void*를 사용한 이유는 데이터 추상화를 적용하려는 의도 때문입니다. 이에 대해서는 ADT에 대한 설명에서 이어집니다. 참고하시기 바랍니다. 😄
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
CPU의 다른 이름 Machine 강의 질의
0
273
4
스택의 POP코드 질문드립니다.
0
259
1
adtFileIO 예제코드관련 질문 있습니다.
0
170
1
ADT강의 관련 질문 있습니다.
0
231
2
RangeSearch002 의 singlelist.c 파일 중 질문 있습니다.
0
192
1
섹션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

