PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2006/10/04 23:14:45
Name arkron
Subject 배열,포인터,malloc 등등 질문
int *a;
a=(int *)malloc(30*sizeof(int));
이렇게 a를 주면

int a[30];
이렇게 지정해준 것처럼
a[0]부터 a[29]까지 값을 입력해서 쓸 수 있는건가요?

그리고 추가적으로
int b[3]={1,3,5};
int main(int argc, char *argv[])
{
    b[3]=7;
    cout<<b[0]<<b[1]<<b[2]<<b[3]<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
이렇게 하면
1357이 출력되는데
b 배열은 b[0],b[1],b[2]까지일텐데
b[3]이 어떻게 입력될 수 있는거죠



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
06/10/04 23:28
수정 아이콘
a[0]부터 a[29]까지 값을 입력해서 쓸수 있는것은 맞지만
두가지가 같은것은 아닌건 아시죠? 메모리가 할당되는 영역이나 참조할수 있는 영역이나 생존영역 등등이 다릅니다. b[n] 이란 명령어는 할당된 메모리를 읽는게 아니라 b가 가진 메모리로부터 n번째 뒤의 메모리를 읽으라는 명령입니다. 그것은 b가 가진 메모리로부토 프로그래머가 몇개나 연속으로 명시적으로 쓰겠다고 할당했냐와는 무관하게 그저 그 n번째 메모리를 읽거나 써줄 뿐이죠. 그런데 자기가 쓰겠다고 확실히 명시하지 않고 맘데로 아무데나 읽고 쓰면 엉뚱한 결과가 나오기 쉬운 것처럼... 저런식으로 할당되지 않은 영역을 쓰고 읽는것은 돌아갈때가 있고 망가질때도 있고.... 한마디로 결과가 어떻게 될진 나도 몰라 가 됩니다. 물론 저경우야 프로그램이 워낙 단순하니 문제가 안생긴 케이스이죠.
C의 경우엔 메모리 관리가 생명이면서 가장 중요하고도 귀찮은 부분이죠.
개념less
06/10/04 23:30
수정 아이콘
아래거는 어쩌다가 우연히 된것입니다. -_-;; 저렇게 짜면 안되죠 당연히
Hyp3r1on
06/10/04 23:43
수정 아이콘
*(a+1) 과 a[1]가 같은 메모리를 가르킨다는 걸 생각하시면 이해가 빠르실 듯;
kwikongja
06/10/04 23:45
수정 아이콘
malloc 함수 요즘엔 필요없다고 잘 안쓴다고 해서 가르쳐 주지도 않아서 제대로 못배웠습니다.
06/10/04 23:57
수정 아이콘
어이쿠 겜한판 하고 오니 답변이 많네요
감사합니다
06/10/05 00:04
수정 아이콘
C는 배열의 범위 체크를 안 합니다. (JAVA 는 체크 합니다)
실제로 할당한 범위 밖의 데이터는 쓰레기 값이며, 읽을 때마다 아마 다른 값이 읽혀 질 것입니다.
만약 할당한 범위 밖의 데이터를 쓰면, 운이 좋으면 아무 이상 없이 동작하겠지만,
보통의 경우는 segment fault 를 보게 될 겁니다.
개념less
06/10/05 12:13
수정 아이콘
malloc 말고 new 로 하죠 요즘엔 대부분.......
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
21341 개인화면 보는 프로그램 있나요? MoreThanAir1572 06/10/05 1572
21340 클럽박스 속도 얼마나 나오시나요? [12] 미스서5811 06/10/05 5811
21338 컴퓨터 성능 확인좀요.. [13] Nyx_soul1945 06/10/05 1945
21337 그래픽 카드 정보를 찾을 수 없다는데.. Go!Go!1592 06/10/05 1592
21336 포맷을 하지 않고 컴퓨터를 깔끔하게 정리하는 법이 뭐가 있을까요? [6] 마르키아르2153 06/10/05 2153
21335 최신 비디오 추천좀 해주세요..... [10] 코리안1869 06/10/05 1869
21334 차로 뒷범퍼를 약간 긁었는데요... kamelot1585 06/10/05 1585
21333 미하라 16번에 대해서 질문입니다. [1] 잃어버린기억1535 06/10/05 1535
21332 웹이 늦게 뜹니다. [4] 바보테란1509 06/10/05 1509
21330 카메라 캐논CF 삽입음악 알고 싶어요. [1] Takion1958 06/10/05 1958
21329 CT-810 [2] kapH1539 06/10/05 1539
21328 웨스트 클랜중 브레인 래더로 가입 가능한 클랜이 있나요? SweetSorrOw_2175 06/10/05 2175
21326 파일을 클릭하고 Delect 키만 눌렀는데도, 바로 삭제가 되어버립니다. [2] 호나우딩요1680 06/10/05 1680
21325 요즘 개봉작 영화좀 추천해주세요~ [10] [K]TrustMe1865 06/10/05 1865
21324 21가지버그 [2] ㅇ_ㅇ3564 06/10/04 3564
21323 배열,포인터,malloc 등등 질문 [7] arkron1524 06/10/04 1524
21322 '운영'이라는건, 왜저그에게만 있는지..? [5] 슷하잘하고싶2090 06/10/04 2090
21320 토스vs테란 200vs200 싸움에서 어떻게 이기죠? [6] 공방풀업아칸2165 06/10/04 2165
21319 친목위주의 클랜을 찾습니다. [1] 삐끼1562 06/10/04 1562
21318 김동수 컴백에 관해서 질문이요. [5] MSTran1822 06/10/04 1822
21317 미네랄 멀리서 깨기 [2] ㅇ_ㅇ1881 06/10/04 1881
21316 뮤탈 짤짤이 하는 방법 가르쳐 주세요 [5] 태엽시계불태3512 06/10/04 3512
21315 바이러스 때문인지 갑자기 스타가 안됩니다 ~_ㅜ [5] 시체1554 06/10/04 1554
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로