안녕하세요.
검색을 하다가 글을 보게 되서
메일을 보냈던 것이였는데.
질문게시판이 있는줄 몰랏네요 ;ㅎ
제가 자료구조스터디를 하다가 책에
VS2008에 있는 디버그/릴리즈 빌드 환경에 따라서
디버그 환경이면 배열을 0으로 자동으로 초기화를 시켜주고
릴리즈 환경이면 초기화를 해주지 않는다고 나와있었는데요 .
이 내용이 배열[10]={0,}; 처럼 초기화를 시켜준것이 아닌 배열[]; 로 선언만 하여도
0으로 자동으로 초기화를 시켜준다는 것 같은데...
제가 이해를 잘못한 것일 수도 있고요 ..
그래서 검색을 하다보니, 배열뿐만 아니라 다른 변수들에 대해서도 초기화를 해준다는것 같은데..
이건 확인을 못해봤고요 .
그래서 확인을 해보고 싶어서
배열을 선언하고 for문으로 배열을 출력해보았는데요.
저 얘기 대로라면 %d값 %x %c값 모두 모두 0 = null이 나와야 하는데
%d = -52
%x = ffffffcc
%c = ?
로 나오더라구요 ...
제가 잘못한건지.. 아니면 VS 환경이나 , 제 컴퓨터 환경에 따라 다른 건지 모르겠습니다.ㅠ
제 컴퓨터는 윈도우 세븐 64비트 이고요 . cpu는 i7 램은 8기가 입니다.
코드는 아래에 붙여넣어 둿고요 .
저얘기대로 0으로 초기화가 되는것을 확인하려면.. 어떻게 해야할까요 ㅠ.ㅠ
혹시 아시는 내용이시면.. 설명좀 부탁드리겠습니다.ㅠ
#include<stdio.h>
int main(void)
{
char a[20];
int i=0;
a[0]='a';
printf("배열 a[0]의 메모리 주소 %d\n",&a[0]);
printf("배열 a[0]의 16진수 메모리 주소 %x\n",&a[0]);
printf("|DEC| |%HEX| |DEC| |HEX| |CHAR|\n");
for(i=0;i<50;i++)
{
printf("|%d| |%x| |%d| |%x| |%c|\n",&a[i],&a[i],a[i],a[i],a[i]);
//배열주소의 10 ,16진수 ,,배열값의 10진수와 16진수 문자열
}
return 0;
}
[최초 등록일: ]
[최종 수정일: 11/17/2012]