这两天在写代码的时候碰到一个很抓狂的bug,调试告诉我“Program received signal SIGSEGV”,发生了段错误。
段错误是访问了不该访问的内存,也就是说你访问的这个地址不在系统给你分配的范围内(大部分情况都是这样)。
一般调试会告诉你错误出在哪一句,我的是因为使用malloc分配了大量的结构体空间,但是结构体中包含一个变量string,可能是因为string导致系统不知道分配多少空间然后出错了吧,最后改成char[8]就对了。这个bug我目前感觉也有些迷,因为当我使用deque(原来用的是vector)时也会报这个错…可能是因为需要的内存太大了?