社区讨论
关于构造函数段错误的求助
学术版参与者 5已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo2dz4tz
- 此快照首次捕获于
- 2023/10/23 12:17 2 年前
- 此快照最后确认于
- 2023/11/03 12:23 2 年前
RT,我在做一道题时写了如下结构体:
CPPstruct Binary_indexed_array {
int t[2000010],n;
Binary_indexed_array(const int& a = 0) {
n = a;
memset(t,0,sizeof(t));
}
inline void add(const int& u,const int& k) {
if (u < 1) return;
for (int i = u; i <= n; i += lowbit(i)) t[i] += k;
}
inline int query(const int& u) {
int ans = 0;
for (int i = u; i >= 1; i -= lowbit(i)) ans += t[i];
return ans;
}
}st,nd;
然后在主函数调用其构造函数:
CPPint main() {
n = input();
c = input();
q = input();
st = Binary_indexed_array(c);
nd = Binary_indexed_array(c);
... //省略其它代码,因为确定是上面5行错了
return 0;
}
然后就段错误。而且段错误的发生在
n = input()执行之前,因为我根本没来得及输入。而注释掉两行调用构造函数之后运行就不会出错。虽然我也知道并不一定要用这种方式实现,但是我还是想问一下这样写哪里错了 QWQ。
回复
共 9 条回复,欢迎继续交流。
正在加载回复...