"hello"는 {'h', 'e', 'l', 'l', 'o', '\0'}라는 char 배열(문자 배열 = 문자열)을 읽기 전용 메모리 어딘가에 만들어 두고 그 주소를 가리키는 string literal(문자열 상수)이고. 그걸 4바이트 공간을 갖는 char 포인터 변수 name이 배열의 시작을 가리키게 한 거지. 고로 메모리 상에 차지하는 크기는 6 + 4바이트 = 10바이트
ㅅㅅㅅ(125.128)2015-05-14 20:01
strlen 레퍼런스를보면 null은 없에서 그사이즈를 리턴해준다고 나온다
nyangduck(210.118)2015-05-14 20:01
첫번째 줄에 ''가 아니라 '\\0'
ㅅㅅㅅ(125.128)2015-05-14 20:01
아 그렇네.. ㅜㅜ
ㅇ(125.177)2015-05-14 20:02
흑흑흑
ㅇ(125.177)2015-05-14 20:02
슬퍼하지마 어차피 memory alignment 설정에 따라 달라질테니까 ㅋㄷ
codesafer(codesafer)2015-05-14 20:09
어떻게 답해주길 원하냐? OS user mode에서? kernel mode에서? 아니면 컨셉으로 들어가 힙/스택? 근데 간단한 것도 모르니 뭐 어찌 답해야할지 모르겠다.
......
"hello"는 {'h', 'e', 'l', 'l', 'o', '\0'}라는 char 배열(문자 배열 = 문자열)을 읽기 전용 메모리 어딘가에 만들어 두고 그 주소를 가리키는 string literal(문자열 상수)이고. 그걸 4바이트 공간을 갖는 char 포인터 변수 name이 배열의 시작을 가리키게 한 거지. 고로 메모리 상에 차지하는 크기는 6 + 4바이트 = 10바이트
strlen 레퍼런스를보면 null은 없에서 그사이즈를 리턴해준다고 나온다
첫번째 줄에 ''가 아니라 '\\0'
아 그렇네.. ㅜㅜ
흑흑흑
슬퍼하지마 어차피 memory alignment 설정에 따라 달라질테니까 ㅋㄷ
어떻게 답해주길 원하냐? OS user mode에서? kernel mode에서? 아니면 컨셉으로 들어가 힙/스택? 근데 간단한 것도 모르니 뭐 어찌 답해야할지 모르겠다.