Plain C, on Windows 7 & HP машина.Указатель смещения не работает в memset?
int main(void) {
unsigned int a = 4294967295;
unsigned int *b = &a;
printf("before val: '%u'\n", *b); // expect 4294967295, got 4294967295
memset(b+2, 0, 1);
printf("after val: '%u'\n", *b);
// little endian 4th 3rd 2nd 1st
// expect 4278255615 - 11111111 00000000 11111111 11111111
// got 4294967295 - 11111111 11111111 11111111 11111111
return 0;
}
Я хочу установить третий байт целого числа в 0x0, но остается тем же. Есть идеи? Спасибо.
На моей машине int 32 бит.
На самом деле, вы не можете ничего о '(Int *) предположим, 0 + 1 'за исключением того, что это'! = 0', так как нулевой указатель могут быть обработаны специально. –
@larsmans bah humbug: P Вы не можете предположить, что NULL равно нулю: P Но я изменил свой пост. Привет, помощник. –
Правильно, он увеличивается по размеру. Полный goof. Спасибо. Примите через минуту. – jn1kk