未分配内存的指针导致段错误
一个最简单的队列初始化操作案例:
编译可以通过:但是运行程序时,会出现段错误:Segmentation fault
分析:主函数中声明了队列的一个指针(只是声明,并未实际分配地址空间),调用初始化函数queue_init(*lk),在函数中直接利用指针进行了操作,在一个没有空间的空间里进行操作犹如空中楼阁。导致内存错误!
改正如下(分配内存空间)即可:
注意:queueLk *lk = NULL;不行,指向空,还是没内存,是个野指针。
一个最简单的队列初始化操作案例:
编译可以通过:但是运行程序时,会出现段错误:Segmentation fault
分析:主函数中声明了队列的一个指针(只是声明,并未实际分配地址空间),调用初始化函数queue_init(*lk),在函数中直接利用指针进行了操作,在一个没有空间的空间里进行操作犹如空中楼阁。导致内存错误!
改正如下(分配内存空间)即可:
注意:queueLk *lk = NULL;不行,指向空,还是没内存,是个野指针。