Это был вопрос из экзамена:
этот код всегда работает?
ответ таков: оператор if проверяет, указывает ли виртуальный адрес 'str' на начало страницы, только тогда должен выполняться strcpy, и он будет работать, потому что вся страница доступна этому процессу.
Кто-нибудь может объяснить мне этот неоднозначный ответ? большое спасибо
int main () {
char *str ;
str = (char*) malloc (sizeof(char)*4);
if ( ((int)str) & 0x00000FFF) != 0) return 0;
strcpy ( str ,"1234567890") ;
printf ("str=%s", str ) ;
return 0;
}