본문

[전공지식] C에서 문장하고 단어의 저장문제

일시 추천 조회 572 댓글수 17 프로필펼치기


1

댓글 17

C[10] 으로 초기화가 되었다면 C[0] 첫번째 문자 겸 char 배열을 읽기 시작할 위치 C[1] 두번째 문자 C[9] 열번째 문자 로 저장 됩니다. 저장되는 방식은 특정 주소로가서 정의된 타입으로 몇번째 까지 또는 특정 기호를 만나기 전까지 라는 식으로 정의가 된다는 느낌 입니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:20
분쇄쿠키

아, 그러니까 실질적으론 C[10]하면 10Byte라는 의미인가요?

인민배우 심영 | (IP보기클릭)117.52.***.*** | 21.12.06 13:21
분쇄쿠키

C[10]에 대한 접근은 범위를 벗어나니 고확률로 세크폴트

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:21
인민배우 심영

Char array나 문자 배열에 대해 찾아보시면 더 정확한 설명을 보실수 있을 겁니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:24
인민배우 심영

문장의 끝을 나타내는 심볼을 위해 11byte 일겁니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:26

https://dojang.io/mod/page/view.php?id=60 https://dojang.io/mod/page/view.php?id=327

와일드다운 | (IP보기클릭)211.106.***.*** | 21.12.06 13:21

주소를 확인할 수 있는 코드 입니다. 온라인 c++컴파일러를 사용한거라 해더가 좀 그렇기는 하지만; #include <iostream> #include <cstring> using namespace std; int main() { char example[] = "hello"; printf("%c\n", example[0]); printf("%s\n", example); printf("%lu\n", sizeof(example)); printf("%lu\n", strlen(example)); printf("Address of example[0] = %p\n", &example[0]); printf("Address of example[1] = %p\n", &example[1]); printf("Address of example[2] = %p\n", &example[2]); printf("Address of example[3] = %p\n", &example[3]); printf("Address of example[4] = %p\n", &example[4]); return 0; }

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:38
분쇄쿠키

돌리시면 아마 이거 비슷하게 나올 겁니다. hello 6 5 Address of example[0] = 0x7ffc0f5eedb2 Address of example[1] = 0x7ffc0f5eedb3 Address of example[2] = 0x7ffc0f5eedb4 Address of example[3] = 0x7ffc0f5eedb5 Address of example[4] = 0x7ffc0f5eedb6

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:39
분쇄쿠키

크기의 경우 sizeof(example) = 6 => 문자 5byte + 단어의 끝을 알리는 심볼 1byte strlen(example) = 5 => 단어의 길이는 5, 끝을 알리는 심볼은 길이에서 제외 됩니다. 저장되는 방식은 example의 각 부분의 주소를 보시면 알 수 있습니다. 주소를 출력하는 부분을 보시면 알 수 있지만 주소가 연속 되어 있습니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 13:42
분쇄쿠키

오, 이렇게 알려주시니 확 들어오네요 저는 char는 string이던 letter건 무조건 1byte인줄 알고 있었는데 역시 길이에 따라 유동적이군요. 감사합니다.

인민배우 심영 | (IP보기클릭)1.216.***.*** | 21.12.06 14:20
인민배우 심영

혹시나 해서 하는 말이지만 char 은 1byte 입니다 char [10]은 char 타입 11개(문자10 심볼1)로 구성된 총 11byte의 배열 입니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 16:47
분쇄쿠키

char [10] 은 10byte 입니다.

컹컹컹컹컹컹컹 | (IP보기클릭)211.192.***.*** | 21.12.06 21:04
컹컹컹컹컹컹컹

그 끝자리를 알리는 심볼도 들어가지 않나요?

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.07 01:25
컹컹컹컹컹컹컹

다시 생각해 보니 그 10byte에 포함이군요. 이런 실수를;;

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.07 01:38

char배열이 곧 단어고 문장인데 나만 이해 못했나

닉에게물어보는닉네임 | (IP보기클릭)106.101.***.*** | 21.12.06 13:58
닉에게물어보는닉네임

질문을 하신 분이 아직 배열 관련 내용 배우시지 않으셔서 올리신 질문인 것 같습니다. 저는 질문 내용을 char에 단어나 문장이 어떻게 저장되는 가를 물으신 걸로 이해했습니다.

분쇄쿠키 | (IP보기클릭)70.54.***.*** | 21.12.06 14:28
분쇄쿠키

네 그런가보네요 제가 질문을 이해를 못하겠어서...;;

닉에게물어보는닉네임 | (IP보기클릭)106.101.***.*** | 21.12.06 16:14
댓글 17
1
위로가기
오잇스 | 추천 4 | 조회 926 | 날짜 2021.12.09
인민배우 심영 | 추천 0 | 조회 1105 | 날짜 2021.12.09
오잇스 | 추천 1 | 조회 1513 | 날짜 2021.12.08
인민배우 심영 | 추천 0 | 조회 693 | 날짜 2021.12.07
인민배우 심영 | 추천 0 | 조회 572 | 날짜 2021.12.06
인민배우 심영 | 추천 0 | 조회 1133 | 날짜 2021.12.05
키라 요시카게 | 추천 0 | 조회 906 | 날짜 2021.12.05
인민배우 심영 | 추천 1 | 조회 687 | 날짜 2021.12.04
인민배우 심영 | 추천 0 | 조회 643 | 날짜 2021.11.30
인민배우 심영 | 추천 0 | 조회 588 | 날짜 2021.09.26
오잇스 | 추천 4 | 조회 665 | 날짜 2021.09.06
키라 요시카게 | 추천 1 | 조회 1098 | 날짜 2021.06.21
보리슈와 | 추천 0 | 조회 980 | 날짜 2021.06.12
루리웹-4970588990 | 추천 0 | 조회 908 | 날짜 2021.05.30
울엄마아들 | 추천 1 | 조회 377 | 날짜 2021.05.22
_ 식봉이는 식봉해 | 추천 4 | 조회 719 | 날짜 2021.05.20
루리웹-8668068376 | 추천 0 | 조회 1365 | 날짜 2021.05.13
단짠짠단 | 추천 1 | 조회 556 | 날짜 2021.05.11
_ 식봉이는 식봉해 | 추천 6 | 조회 722 | 날짜 2021.04.30
단짠짠단 | 추천 7 | 조회 2923 | 날짜 2021.04.20
_ 식봉이는 식봉해 | 추천 3 | 조회 1596 | 날짜 2021.03.24
단짠짠단 | 추천 0 | 조회 600 | 날짜 2021.03.17
혼노모 | 추천 6 | 조회 2106 | 날짜 2021.03.13
_ 식봉이는 식봉해 | 추천 1 | 조회 654 | 날짜 2021.03.13
자격종목 | 추천 1 | 조회 606 | 날짜 2021.03.13
단짠짠단 | 추천 1 | 조회 557 | 날짜 2021.03.13
마프네 | 추천 0 | 조회 550 | 날짜 2021.03.12
키라 요시카게 | 추천 0 | 조회 637 | 날짜 2021.03.12

1 2 3

글쓰기
게시판 매니저
.