今天在写程序的时候遇到了一个奇怪的bug,就是我在类中定义了一个map,可当我在类成员函数中对其进行插入的时候却出现了访问权限冲突的错误。
以前使用map从来没出现过这种情况,一遍又一遍的下断点也没能找出错误所在,最后在代码运行顺序下一条一条的进行插入map的操作,终于找到了问题的所在:
是因为我类中定义在map前面的一个数组溢出了,但在某些情况下溢出并不会报错,比如这里,由于这个数组后面的内存也是属于类对象的,就导致数组溢出的时候并没有报错。
而至于为什么会在map插入的时候报访问权限冲突的错误,由于我对map的底层实现原理并不了解,所以并不清楚,我猜测应该是数组溢出之后破坏了map的结构,导致在编译器眼里这个map是已经被销毁了的,所以报了这个错误