지역변수로 선언한 문자열이 항상 동일한 주소를 가지네요?
아란
void func() {
int arg[10];
printf(%p, arg);
}계속 같은 값을 출력하는데지역변수로 선언한 건 사라져야 하지 않나요?만약 이게 어떤 원리에 의해 그런 거라면어떠한 시스템에서도 똑같이 동작하는 건가요?함수 안에서 인자로 받은 원본 문자열에 대해 strtok을 쓰는데원본이 변형되지 않게 하려고 저렇게 복사본을 만들어서tokenize 한 거거든요.첨엔 안 될 거 같았는데 해보니까 돼서 궁금해졌습니다.답변 부탁드릴게요 ㅎ
-
초코홀릭
아 그렇군요 ㅎ 잘 배웠습니다 ^_^
-
보라나
네 생각 하신 대로 입니다. 다만 빈 공간이고 누구든지 접근이 가능한 영역이므로 그 영역을 어떤 다른 곳에서 메모리가 할당 된 상태에서 그 메모리를 바꾸려고 하면 잘못된 접근으로 오류가 나죠. 아직 그 공간을 어떤 변수가 사용하지 않기 때문에 맘대로 접근해도 가만 두는 거구요. 그래서 메모리 포인터 같은 경우 주소를 그대로 두시 않고 할당 해체후에 그 포인터 변수에 0이나 nullptr 을 을 넣어서 아에 이런 오류 가능성을 차단하기도 합니다.
-
FaintTears
그럼 지웠다고 표시만 할 뿐이고 접근은 가능하게 둔 건가요? 함수 끝나고 나서 그 주소로 출력해보면 잘 나오거든요 ㅋ
-
우솔
OS 가 무턱대고 메모리를 막주는게 아니라 프로그램당 그러니까 프로세스당 메모리를 가상으로 기본 크기 만큼 만들어서 주는걸로 압니다. 거기에서 요청이 더 있으면 늘려가는 거구요. 그러므로 가상의 영역 만큼 주는 거고 거기에서 순서대로 채워 나가니 동적인 할당이 아닌 이상 매번 똑같은 값을 가르키겠죠. 게다가 데이터는 지우지 않고 지웠다고 표시(오버라이트 가능 하다고 표시)만 할 뿐이지 실제로 지우진 않아요. 그래서 파일 복구 같은 프로그램들이 동작 가능
-
귀1여운렩
제가 질문을 좀 애매하게 올린 거 같은데 프로그램 실행이 아니고 함수 호출입니다. 그러니까 저 코드가 while문 안에 있다고 생각하시면 될 거에요. 물론 프로그램을 다시 시작하면 달라집니다.
-
심플이
질문자 시스템에서 위 배열이 차지하던 메모리를 다른 프로그램이 계속 사용하지 않다면, 동일한 메모리를
할당 받을수도 있지요...
저런건 오로지 os 의 관리하에 있는 것이므로, 같게 나오던 다르게 나오던 신경 쓸 필요가 없지요...
| 번호 | 제 목 | 글쓴이 | 날짜 |
|---|---|---|---|
| 2752142 | 더블 포인터 관련 최대최소값 구하기 (2) | 풀잎 | 2026-10-21 |
| 2752115 | c언어 이상한질문 (4) | 모드니 | 2026-10-21 |
| 2752085 | 문자열을 랜덤하게 출력해서 대체,삽입,삭제 횟수를 각가 표시하고 그걸 표 형태로 출력 | 슬아s | 2026-10-20 |
| 2752056 | 포인터 && 배열 질문요~ (2) | 해찬나래 | 2026-10-20 |
| 2752031 | x^n 구하는 코드 짜봤는데 값이 틀려요 ㅠㅠ | 세실 | 2026-10-20 |
| 2752000 | 나 정말 미치겠어요..ㅠㅜ (4) | 다이 | 2026-10-20 |
| 2751978 | 문자열 질문이요.. | 초시계 | 2026-10-19 |
| 2751945 | 숫자 맞추는 프로그램이요 ㅠㅠ (1) | 동은 | 2026-10-19 |
| 2751917 | C언어 이중 연결 관련 질문합니다. | 유우 | 2026-10-19 |
| 2751888 | return의 정확한 의미좀 알려주세요 (3) | 올해1살 | 2026-10-19 |
| 2751857 | 포인터 배열 (2) | 터큰 | 2026-10-18 |
| 2751831 | 연산자? 질문입니다 (2) | 진주 | 2026-10-18 |
| 2751800 | C언어 기초질문입니다.. (3) | 핫블랙 | 2026-10-18 |
| 2751739 | 파일 출력을 구조체로 받을 때, 파일의 끝을 판별하는 방법을 알려주세요. (2) | 얼 | 2026-10-17 |
| 2751715 | unresolved external symbol 에러... | 이룩 | 2026-10-17 |
| 2751686 | 변수 설정에 관한 질문입니다. | 꽃달 | 2026-10-17 |
| 2751655 | 자료구조 연습문제 | 한무릎 | 2026-10-17 |
| 2751631 | gets 함수 질문이요. (4) | 해늘 | 2026-10-16 |
| 2751553 | 퀵정렬 소스인데 주석좀 달아주세요 (1) | 싴흐한세여니 | 2026-10-16 |
| 2751528 | 저기 이거하는법좀 질문.. (2) | 가람슬기 | 2026-10-15 |
