段错误的可能原因

导致段错误的可能原因

1.数组越界

1)n = INT_MAX?

有时题目说的范围是int的取值范围,而不是1-n,

此时,如果使用bool vis[N]来申请会出错,需要使用unordered_map<int, bool> mp;

2)unsigned int cnt = v.size() - 1

这种写法看似没有问题,但是当v为空时,cnt会赋值为-1,而unsigned int 无法表示负数,

会变为一个很大的正整数,在后续遍历时导致段错误。

2.函数错误

Stoi和Stod使用前需保证传入的字符串是合法的数字/小数。

STL中的front、back和top函数需要配合empty函数使用,为空时访问会报错。

3.栈溢出

有时使用DFS会导致栈空间溢出,此时应该改用BFS+queue的形式。


段错误的可能原因
https://czwcugb.github.io/算法/未分类/段错误的可能原因/
作者
ChenZhiwei
发布于
2025年1月13日
许可协议