불리언과 부동소수점
185
작성한 질문수 86
불리언과 부동소수점에서 디버그시 조사식과 메모리를 이용해서 메모리 안에
float 값이 어떻게 들어가 있는지 확인하는 부분이 있습니다.
메모리에 00 00 58 c0 라 되어 있다면
현재 16진수로 표현되어 있으니까 00이 1byte인 것은 이해했습니다
여기서 제가 00 00 58 c0 뒤에 붙은 00 들의 숫자를 세어봤더니
저의 경우는 36개 정도가 뒤에 있고 Rookiss님의 경우는 뒤에 약 60개 정도의 00 0f 00 ...이런식으로 붙어있었습니다
첫째, 이 개수의 차이가 왜 나는 것인가요?
둘째, 강의에 쓰인 변수에 몇 바이트가 할당되는 건가요? float니까 4byte만 할당되는 것 아닌가요?
왜 해당 변수의 정확한 주소를 봤음에도 불구하고 뒤에 더 00 00 00 들이 붙어 있는지 궁금합니다.
셋째, 저의 경우 00 00 58 c0 뒤에 0f ff ff ff 00 등 다른 값들이 들어가 있던데 이 값들의 의미는 무엇인가요?
답변 2
1
float는 4바이트니까 00 00 58 c0까지가 float 변수에 해당하는 메모리이고,
나머지는 다른 용도로 사용중이거나,
사용되지 않고 있는 메모리를 보고 있는 것입니다.
지금은 attackSpeed를 전역으로 만들어놨으니
Data 영역을 구경하고 있는 셈이 되겠네요.
실행환경에 따라 결과물이 달라질 수 있기 때문에
나머지 0의 개수라던가 이런 것은 전혀 신경쓸 필요가 없고
우리가 할당해서 사용하는 4바이트 float만 분석하면 됩니다.
나머지는 초기화 되지 않은 쓰레기값이 들어갔거나,
프로그램 구동할 때 필요한 정보 등이 있을 수 있습니다.
data stack heap 영역은 계속 나올 주제이니
메모리 분석은 지금부터 다 하실 필요는 없습니다.
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
542
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
442
1
strcpy() 구현 관련 질문
0
513
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
453
1
클래스 타입의 포인터 질문합니다
0
546
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
498
1
템플릿 특수화 관련 질문
0
385
1
포인터 관련 질문합니다!
0
265
1
Unable to start assembler. Check your settings.
0
831
2
cpu선택
0
540
1
포인터 질문이 있습니다
0
324
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
585
1
iterator 삭제관련
0
406
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
310
1
15 분 45초 대 질문
0
309
0
스택 프레임 질문합니다!
2
306
1
오른값 참조 in 게임
0
384
0
동적할당 질문이 있습니다
0
450
1
안녕하세요 메모리에 대해 질문드립니다.
0
305
1
함수객체 의 매개변수
0
360
1
복사생성자
0
434
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
421
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
355
1
스택 오버플로우
2
790
1





