c언어 자료구조 관련 간단한 질문 있습니다.
2018.10.13 21:23
오랫만에 글 작성하는게 질문이라 좀 그렇네요 ㅎㅎ
다름이 아니라 요즘 슬슬 전산직 공부 해보고 있습니다.
공무원을 준비하는건 아니고 그냥 공부정도만 해두고 있는데 자료구조 공부가 너무 오랫만이다 못해 c자체를 많이 잊어먹어서요..
(이러면서 연구원 생활 하는 저는 참 ㅠㅜ)
일단 문제 자체는 간단합니다. 근데 이게좀 맞는건가 싶어 질문 드립니다.
저기서 각각 a와 비는 (999,-3,888,-2,0,1) 과 (10,1,9,1,5,1)이 되어 24byte가 되는게 맞는건지 아니면 제가 빠트린 부분이 있는지 궁금 합니다.!
코멘트 10
-
영준
10.13 22:02
-
자문 자답입니다만...
36이 정답 이더라구요.
지수 계수 각각 나누어
계수는 실수형 이니 36
지수는 정수영이니 24
(각각 6개씩 해서용!)
끌끌 역시 이런건 학원 다녀야 하나 싶어요 ㅎㅎ
-
영준
10.13 22:13
? 잘 이해가 안되네요..
-
아! 실제적인것 보다 문제는 ADT 에서 요구하는 걸로 하다보니 실제적인것 말고 위에 예시처럼 2바이트 4바이트로 저장 해야 되더라구요.
-
타이세츠나
10.13 22:14
실제로는 영준님 말씀대로 되서 48이 맞는데, 문제에선 보통 거기까지 고려하진 않는것 같더라구요.
그리고 문제가 좀 그런게 보통 int랑 float 사이즈를 얘기할 때 4,8이라고 할텐데 말이죠..(물론 컴파일러가 8비트라는 조건이 있다면 맞는 이야기겠습니다만....)
-
영준
10.13 22:31
그렇군요... 그러나 용납하기 어려운 문제네요..원래 저런경우 구조체 패딩은 고려하지 않는다라는 전제 조건을 달아야 합니다..
-
아마 자료구조론 이다보니 그러지 싶어요. ㅎㅎ
-
SYLPHY
10.14 17:09
출제기관이 어딘가요? 자격미달 문제입니다.
일단 우변만 보면 36바이트가 맞습니다. 문제에서 int 표현 시 2바이트, float 표현 시 4바이트라고 한정했으니 논란거리가 되진 않을 듯 합니다.
다만 다항식 A(x)와 B(x)를 저장하기 위한 공간을 구하라고 하는데, 쓸데 없이 A(x)와 B(x)를 적어둔게 문제입니다. 게다가 A(x)는 볼드까지 쳐 뒀네요.
이는 해당 다항식을 저장하는 구조체 배열의 시작 주소도 함께 저장하라는 것으로 읽힙니다. 그런데 문제에는 메모리주소의 크기가 없네요. int가 2바이트인걸 보니 16비트 머신 같긴 한데...
이런 수준미달 문제로 너무 고민하지 마세요. ^^ -
매우 과거 문제집 이기는 합니다.
ADT 관련 문제 풀다가 있어서 풀어 봤는데 ... 사실 문제 자체의 문제 보다는 제가 대부분 까먹서어 애먹고 있어서요 ㅎㅎ
답변 정말 감사합니다./!!!
-
왕초보
10.16 00:00
가시가 박혔는데 외과라면서 전지가위로 피부 위에 박힌 부분만 싹 자르고는 나머지는 내과 가세요 하던 우스개가 생각나는 문제입니다. 자료구조라 딱 저 자료구조에 해당하는 메모리만 세라니.. ㄷㄷㄷ
그렇지만 만약 무슨 자격증 준비를 하고 계신다면 별 방법이 없긴 하겠네요. 출제자 수준에 맞춰 공부를 해야 합니다. 그런 자격증이 얼마나 쓸모가 있느냐는 다른 문제이기도 하겠고요.
int가 2-byte여도 실제로는 float 주소 배정을 위한 패딩때문에 4-byte를 사용하게 되고, 결국 pos의 사이즈는 8바이트아닌가요?
8-byte * 6쌍 = 48-byte 일 것 같은데...그런 보기는 없군요.. 이런..