선언한 배열길이보다 값이 커도 데이터가 잘 들어가는건가요? 예제소스
물병자리
질문 제목 : 선언한 배열길이보다 값이 커도 데이터가 잘 들어가는건가요?
아래 소스에서 보면 m_Data 배열의 길이를 100으로 설정하고
m_Data에 값을 넣어주고 있는데요
배열의 길이는 100인데 150까지 데이터를 넣어보고 테스트를 해봤습니다.
90이후 부터 결과값 찍어봤는데요
91:91
92:92
...
...
149:149
결과가 149까지 다찍어서 나오더라구요
제가 선언한 배열의 길이는 100인데
150의 길이까지 데이터가 들어갈수 있는건가요?
gcc 로 컴파일했습니다.
#include stdio.h
intm_Data[100];
int main()
{
int nCnt = 0;
int i;
for(i=0; i150; i++)
{
m_Data[nCnt] = nCnt;
if(nCnt 90)
printf(%d:%d\n,nCnt, m_Data[nCnt]);
nCnt++;
}
return 0;
}
-
김애교
C언어는 배열체크를 하지 않습니다.
10개로 만들고 1000바이트를 넣어도 에러가 나오지 않죠.
프로그래머가 알아서 체크해줘야합니다. -
뱐헀어
C의 단점이자 장점입니다.
프로그래머가 올바르게 쓰는 수 밖에 없습니다. -
달
[i] 연산자는 배열의 크기를 채크하지 않습니다.
배열에만 쓰이는 연산자가 아니거든요. 어찌 보면 배열하고 상관이 없습니다.
A[B] 는 그냥 *(A+B) 와 같아요. A,B 의 위치는 바뀌어도 되구요.
m_Data[nCnt] 나 nCnt[m_Data] 나 같아요. -
예린
101 102....번째 메모리위치에 일단 써지고 읽혀지긴할껍니다.
나중에 어떠한 메모리를 할당하고 쓰는 과정에서 100 메모리 이후에 메모리에 덮혀써지고 지워지고 하는과정에서 왜그런지 알수도없는 버그들이 나타나고 지옥을 맞보게 될수도있죠. -
2gether
나중에 엄청난 고통을 받으실수도있습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2653802 | 배열에 저장된 데이터와 원하는 데이터비교하는것좀.. | 리카 | 2024-05-05 |
2653727 | 고수님들 봐주세요~ (2) | 아담 | 2024-05-04 |
2653702 | C언어 의 단계가 어떻게 되나요???????????????? (3) | 길가온 | 2024-05-04 |
2653645 | 저....while인데..이게무슨뜻인지좀.. | 설희 | 2024-05-03 |
2653613 | 성별변수 | 뿡뿡 | 2024-05-03 |
2653584 | 16진수 변환 관련 질문 드립니다. | 매미꽃 | 2024-05-03 |
2653557 | 한글 완성형과 조합형의 전환 | 해지개 | 2024-05-02 |
2653506 | void형 포인터 이해안가요 ㅠㅠ (2) | 뭘봐요 | 2024-05-02 |
2653482 | 패턴매칭에 대한 질문하나 올립니다 | 미투리 | 2024-05-02 |
2653452 | main 함수 매개변수 문의드립니다. (2) | 딥레드 | 2024-05-01 |
2653425 | 간단한 포인터 설명좀 해주세요 ㅠㅠㅠ | 차분나래 | 2024-05-01 |
2653400 | 플로우 차트 작성 질문입니다. (2) | 아인 | 2024-05-01 |
2653370 | c언어 해석 부탁드립니다 ㅠ | 악당 | 2024-05-01 |
2653345 | 분수의 덧셈 질문이요 | 하늘 | 2024-04-30 |
2653313 | //정수 n을 입력받아 1부터 n까지의 합을 구하는 프로그램// (6) | 거북이 | 2024-04-30 |
2653284 | 알파벳 변수 관련(배열에서) | 나슬 | 2024-04-30 |
2653260 | C언어 scanf인데.. | 찬누리 | 2024-04-30 |
2653230 | 한글로 해석부탁드립니다. (1) | BlackCat | 2024-04-29 |
2653142 | 질문드립니다.. 부탁드립니다.. | 머슴밥 | 2024-04-29 |
2653119 | cmd창[도스창, 콘솔창]에 한글이 출력이 안되요. (2) | By은지 | 2024-04-28 |