程序崩溃有很多原因,这里只分析在debug时导致程序崩溃的原因。
一般而言,大多数程序崩溃是指针引起的,指针的排查不好排查,但是常见的有几种场景:
1、通过下标、迭代器越界访问。
比如访问一个不存在的元素,亦或迭代器指向了尾端,但仍通过它获取值等
2、地址不合法。
通常在传递参数时会发生,所以最好对于形参指针,要做有效性检查
3、参数不对齐。
实参和形参类型不符,但是存在一些隐士转换时,会发生崩溃
再者,甚至打印printf也会崩溃,比如printf("test%s");
程序崩溃有很多原因,这里只分析在debug时导致程序崩溃的原因。
一般而言,大多数程序崩溃是指针引起的,指针的排查不好排查,但是常见的有几种场景:
1、通过下标、迭代器越界访问。
比如访问一个不存在的元素,亦或迭代器指向了尾端,但仍通过它获取值等
2、地址不合法。
通常在传递参数时会发生,所以最好对于形参指针,要做有效性检查
3、参数不对齐。
实参和形参类型不符,但是存在一些隐士转换时,会发生崩溃
再者,甚至打印printf也会崩溃,比如printf("test%s");