【发布时间】:2021-06-12 22:27:54
【问题描述】:
我定义了一个struct 类型如下:
typedef struct {
int obs_flag;
double obs_timestamp;
int event_mask;
char *event_name;
char *filedir;
} structdata;
我有一个名为obs_data的指针:
structdata *obs_data;
然后我想将obs_data的每个对象分配如下:
int observer_flag = 1;
double ctime = 2309212380.323100;
struct inotify_event* event = (struct inotify_event*)(buffer + bytesProcessed);
obs_data->obs_flag = observer_flag;
obs_data->obs_timestamp = ctime;
obs_data->event_mask = event->mask;
obs_data->event_name = event->name;
obs_data->filedir = "./myDir/";
在上面,event 是来自 inotify 的结构,它捕获与 Linux 中文件或目录更改相关的事件。
当我在我的程序中运行上述代码块时,我遇到了Segmentation fault (core dumped)。
我不是使用结构和指针的专业人士。非常感谢任何帮助。
【问题讨论】:
-
double ctime = 2309212380.323100此处缺少分号。还有什么是buffer?请发帖Minimal, Reproducible Example。 -
你是如何初始化指针
obs_data本身的,而不是它所指向的? -
`我在其中实例化和“观察者数据”,不,你不是。您仍然需要为它分配内存。 C 中没有“实例化”。
-
我进行了相应的编辑。