이 여기에 코드의 사용 변경 :포인터 주소는 malloc에
void main() {
int i,*s;
for(i=1;i<=4;i++) {
s=malloc(sizeof(int));
printf("%lu \n",(unsigned long)s);
}
}
내 빌려 INT의 크기는 2 바이트, 그래서해야하지 16 비트에 의해 증분의 printf 명령 인쇄 주소는, 대신에이 주소를 인쇄 다음과 같이 :
2215224120
2215224128
2215224136...
왜 이렇게할까요?
'malloc'은 주소 공간 전체에 주소를 반환 할 수 있습니다. – Mat
프로세서 아키텍처는 무엇입니까? 'malloc'은 누구를 사용하고 있습니까? –
@Mat이 말했듯이, malloc에 의해 반환 된 주소에 대해서는 어떤 가정도 할 수 없습니다. 일반적으로 최소 정렬과 최소 크기 할당이 8 바이트 인 것처럼 보입니다. –