도와주세요!!
글 수 15,339
2007.10.05 12:14:12 (*.74.133.106)
6322
안녕하십니까.
EZ-X5 보드를 사용하고 있습니다.
배열을 선언 했습니다.
char array[20];
메모리 초기화 후에
memset( array, 0x00, 20 );
array[0] = 0x01;
을 할당하고
*((short*)&array[1]) = 162;
를 할당 했습니다.
보통 리눅스의 핵사 값을 찍어보면
[01] [a2] [00] [00] [00] [00] [00] .........
이렇게 할당이 됩니다.
보드에서 실행을 시켜 보면
[00] [a2] [00] [00] [00] [00] [00] .........
첫번째 메모리 까지 침범 합니다.
그래서 [a2]가 이진수로 10100010 이니
혹시 맨앞 비트에 문제가 있는거 아닌가 싶어서
array[0] = 0x01;
*((short*)&array[1]) = 0x02;
를 할당했는데 결과는 마찬가지 입니다.
왜 앞의 메모리 까지 침범하는지.. 답변 부탁드립니다.^^
EZ-X5 보드를 사용하고 있습니다.
배열을 선언 했습니다.
char array[20];
메모리 초기화 후에
memset( array, 0x00, 20 );
array[0] = 0x01;
을 할당하고
*((short*)&array[1]) = 162;
를 할당 했습니다.
보통 리눅스의 핵사 값을 찍어보면
[01] [a2] [00] [00] [00] [00] [00] .........
이렇게 할당이 됩니다.
보드에서 실행을 시켜 보면
[00] [a2] [00] [00] [00] [00] [00] .........
첫번째 메모리 까지 침범 합니다.
그래서 [a2]가 이진수로 10100010 이니
혹시 맨앞 비트에 문제가 있는거 아닌가 싶어서
array[0] = 0x01;
*((short*)&array[1]) = 0x02;
를 할당했는데 결과는 마찬가지 입니다.
왜 앞의 메모리 까지 침범하는지.. 답변 부탁드립니다.^^