Slackware 10 (Проверял на 2-х машинах)!
#include <stdio.h>
#include <stdlib.h>
main()
{
char *ns, *ps;
printf("%s\n", "Введите число");
fgets(ns, 5, stdin);
printf("%s\n", "Введите разряд");
fgets(ps, 5, stdin);
printf("%s %d\n", "Результат сдвига вправо ", atoi(ns) >> atoi(ps));
}
(gdb) run
Starting program: /root/a.out
Введите число
16
Введите разряд
1
Program received signal SIGSEGV, Segmentation fault.
0x4008d5c5 in _IO_getline_info () from /lib/libc.so.6
ldd a.out
libc.so.6 => /lib/libc.so.6 (0x4002a000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Дома стоит компилятор 2.95.3, что самое интересное, выдаёт верный результат, но вылетает в sig fault, во второй библиотеке!
Тестировал со всеми битовыми операциями, результат аналогичный!
Выши мнения!