关于内存分配的报错……
  • 板块学术版
  • 楼主Imakf
  • 当前回复25
  • 已保存回复25
  • 发布时间2020/7/12 21:57
  • 上次更新2023/11/6 23:13:26
查看原帖
关于内存分配的报错……
47863
Imakf楼主2020/7/12 21:57

大家好,我今天写了一发指针线段树(主席树)。

我在修改操作的时候会 new 一些节点出来。

node *change(node *ORG ,int pos ,int val){
	// TEST1 std::cout << std::flush;
	// TEST2 printf("CHANGE %d %d\n" ,ORG->l ,ORG->r);
	node *x = new node;
	*x = *ORG ,x->tag = 0;
	if(x->l == x->r){
		x->sum += val;
		return x;
	}
	if(pos <= x->l) x->lch = change(ORG->lch ,pos ,val);
	else x->rch = change(ORG->rch ,pos ,val);
	return pushup(x) ,x;
}

我随便运行了一组小样例,得到了报错:malloc_consolidate(): invalid chunk size,不知是为何?

同时我发现一旦我加上调试语句 TEST2,程序即可正常运行。觉得很奇怪,故发帖求助 qwq。

系统是 Ubuntu 19.10,内存 3.8 GiB。

2020/7/12 21:57
加载中...