unsigned int lCount = 123456;
static char strCount[1]; // static으로 안하면 over 플로 발생 !
sprintf(strCount, "%d", lCount);
std::cout << strCount << std::endl;
unsigned int lCount = 123456;
static char strCount[1]; // static으로 안하면 over 플로 발생 !
sprintf(strCount, "%d", lCount);
std::cout << strCount << std::endl;
아..히밤 글 썼는데 지워짐;;
표준에서 정적 기억 부류를 가지는 오브젝트는 0 초기화를 보장한다.
문자열의 끝은 표준에서 널 터미네이티드로 표현하는데 이 널 문자도 표준에서는 내부 표현을 0으로 정의함
고로 스태틱(아..이게 금칙어냐;;)으로 쓰면 길이가 0인 정상적인 문자열이 되는거
오늘은 영 몸이 피곤한게 표준 문서에서 몇항에 있는지 찾아주기는 귀찮넹..
야 위에 나 다 개소리임..ㅋㅋㅋ 난 그냥 주석만 읽고 답변함..
걍 위에껀 걍 OT로 생각하고 저 위 예제는 정적 기억부류를 쓰건 안 쓰건 오버플로우가 발생하든 안하든은 undefined임
걍 왜 그런지 알려면 해당 메모리 영역 덤프 떠서 봐..
근데 별 의미 없다..어차피 그건 때에 따라 달라서(라고 쓰고 운빨이라고 읽음)
비트연산에서 비트가 바깥쪽으로 밀리면 걍 삭제 아니였던가?
2 입력해놓고 >> >> 해보셈 그럼 알 수 있겠지 아마 0 나올듯
공간을 1바이트만 잡아놓고 하는데 될리가 없잖수.
다만 전역 변수나 스태틱인 경우에는 데이터 영역에 위치하기 때문에 공간 밖으로 침범하더라도 프로그램이 팅긴다던가 하는 큰일은 생기지 않음.
그래서 그런 차이가 발생한 거고. 저 코드가 잘못된 건 맞아.
ㄴ 던가->든가
http://autogram.tk/이
중고차 어플리케이션 어떤가요?