본문 바로가기
728x90
반응형

메모리2

메모리의 세계는 더 넓어?... 메모리 할당과 최적화. 1. 메모리에 어떻게 할당 되는 지를 보기 위해 짠 소스이다. 그리고 #if는 if문과 비슷하지만 사용 용도가 다르다. 그냥 if 문은 main() 함수내에서 어떠한 조건이 충족되는 지를 알기 위해 쓰여 진 것이라면 #if문은 Test를 위해 2개 이상의 소스 중 하나를 선택하여 Test를 할 수 있도록 사용 한 것이다. 그리고 #if 문 에 1이라는 코드는 지금 이 소스를 선택하여 컴파일 하겠다고 선택 한 것이다. int a; // 4 byte. char b; // 1 byte. int c; // 4 byte. short d; // 2 byte. char e; // 1 byte. int f; // 4 byte. char g; // 1 byte. short h; // 2 byte... 2012. 6. 18.
이상한 나라의 memmory?~~~ 메모리 영역 확인. 1. 위 소스는 메모리에 저장 될때 각 각 영역이 다르게 들어가는 것을 확인하기 위해 짠소스이다. *cp = 'b'; 2. 포인터형 cp 에 b를 문자를 넣는데 이 부분이 Linux와 visual studio의 컴파일에서 차이가 난다. 그 이유는 *cp가 메모리의 code 영역에 직접적으로 쓸려고 하기 때문에 안되는 것인데 원래 code영역은 읽기만 되는 영역이어서 쓰기가 안되는 것이 당연한 것이다. 그러나 visual studio에서는 쓰는게 가능 하다. 3. 위 그림에서 printf문이 2개가 출력 된것은 볼 수 있는데 그 다음 printf문이 안되는 것을 볼수 있다. *cp = 'b'; 이 구문 때문에 segementation fault 라는 오류가 뜨는데 쓸수 없는 메모리의 c.. 2012. 5. 21.
728x90
반응형