1
Я пытаюсь понять операцию побитового в следующем коде, но это приводит к ошибке сегментациипобитовое операции причина неисправности Сегментация
#include <stdio.h>
#include <stdint.h>
main()
{
uint16_t newmss = 1024;
uint8_t *opt;
unsigned int i = 0;
opt[i] = (newmss & 0xff00) >> 8;
opt[i+1] = newmss & 0x00ff;
fprintf(stderr, "opt[0] is %d", opt[0]);
fprintf(stderr, "opt[1] is %d", opt[1]);
}
скомпилирован с gcc -g -o shift shift.c
затем выполнить сдвиг, я получил ошибку сегментации
# ./shift
Segmentation fault
using gdb to debug
(gdb) run
Starting program: /home/vincent/shift
[email protected]:/home/vincent# gdb shift
GNU gdb (GDB) 7.1-ubuntu
(gdb) run
Starting program: /home/vincent/shift
Program received signal SIGSEGV, Segmentation fault.
0x0804843f in main() at shift.c:11
11 opt[i] = (newmss & 0xff00) >> 8;
Может ли кто-нибудь пролить свет на то, что я делаю неправильно, чтобы вызвать ошибку сегментации?
спасибо, я забыл основы, что я должен выделить пространство указателя перед его использованием –