天天看点

调试中出现Programm received signal SIGSEGV, Segmentation fault原因及解决方法

调试中出现Programm received signal SIGSEGV, Segmentation fault原因及解决方法

在逐步调试时出现该错误

这个信号产生的机制是由于程序访问了没有权限访问的内存,比如内存越界,线程栈溢出等等。指针未初始化或越界,访问到了未分配地址的空间。

代码:

struct its_cpm_perceived_object_container *obj;
obj = util_calloc(1, sizeof(*obj));
obj->y_speed.confidence->value = 25;
      
struct its_cpm_perceived_object_container *obj;
obj = util_calloc(1, sizeof(*obj));
obj->y_speed.confidence = util_calloc(1, sizeof(*obj->y_speed.confidence));
obj->y_speed.confidence->value = 25;