Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        上个月关闭。
                                                                                            
                
        
struct data_calend {
    int day;
    int year;
    int month;
};

struct personal_data {
    char* first_name, * last_name, * occupation, * department, code[13];
    data_calend birth_date, empl_date;
};


所以这些是我的结构,在看似简单和基本的事情上遇到了麻烦:

personal_data* p, * min{};
min->empl_date.day = p[0].empl_date.day;


这样做,我得到一个错误,说我正在取消引用NULL指针“ min”。它可以编译并运行,但到达那里时会停止。我尝试以各种方式使用*运算符,但未执行任何操作。

编辑:添加了初始化部分。以为我之前添加了它,但显然没有。

最佳答案

就像错误说:“取消引用NULL指针'min'”。您应该为“ min”分配内存,以便min指针可以指向它并取消引用它,也可以访问它所指向的数据-这样可以成功。

        struct personal_data *min = malloc(sizeof(struct personal_data));
        min->empl_date.day = p[0].empl_date.day.

关于c - 使用结构时取消引用NULL指针错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59601682/

10-08 22:44