求助,关于程序运行内存
  • 板块学术版
  • 楼主chenxia25
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/1/12 15:14
  • 上次更新2023/10/24 04:35:26
查看原帖
求助,关于程序运行内存
138400
chenxia25楼主2023/1/12 15:14

本人写数据结构有个坏习惯,喜欢把该数据结构相关的所有变量、数组、函数放在一个结构体里,如:

struct segment_tree {
  int val[N << 2], lazy[N << 2];
  void modify(...) { ... }
  int query(...) { ...}
} sgt;

今天偶然发现如果用命名空间而非结构体封装,运行内存会小很多(同一道题,struct 180MB,namespace 140MB),如:

namespace sgt {
  int val[N << 2], lazy[N << 2];
  void modify(...) { ... }
  int query(...) { ...}
}

经测试,两种版本的程序静态内存相同,也没有使用 new、alloc 之类动态分配内存,那只能是栈内存的区别?请问对这个现象有什么解释吗?或者能不能科普一下程序运行内存(除开静态内存外)到底是怎么算的?

2023/1/12 15:14
加载中...