avatar
stack/heap corruption# Programming - 葵花宝典
F*i
1
请问, 有么有可能 用 c++ 的时候,
不能 new 一个很大的array, 或者 在 一个function 里面 不能
initialize 一个很大的vector ?
如果不能, 请问哪里可以查这个上限? 谢谢?
avatar
m*t
2
donto know if c++ has such limit, but c does not care. you can only detect
that at run time.

【在 F*******i 的大作中提到】
: 请问, 有么有可能 用 c++ 的时候,
: 不能 new 一个很大的array, 或者 在 一个function 里面 不能
: initialize 一个很大的vector ?
: 如果不能, 请问哪里可以查这个上限? 谢谢?

avatar
F*i
3
Thanks

【在 m***t 的大作中提到】
: donto know if c++ has such limit, but c does not care. you can only detect
: that at run time.

avatar
j*r
4
That depends on the location of newly allocated memory space.
If you use new to allocate a new array, it is allocated in heap. I remeber
available space in heap is huge because of virtual memory. In addition, heap
is well managed so that error is returned if your memory allocation request
can not be satisfied.
If you use static definition (like vector vec[10000]), it is allocated in
stack. In linux, some systems have default limitation about the stack size.
You can use unlimit command to chec

【在 F*******i 的大作中提到】
: 请问, 有么有可能 用 c++ 的时候,
: 不能 new 一个很大的array, 或者 在 一个function 里面 不能
: initialize 一个很大的vector ?
: 如果不能, 请问哪里可以查这个上限? 谢谢?

avatar
c*x
5

it is OK to new an array or vector, the pointer is located at stack but the
instant is located at the global heap.

【在 F*******i 的大作中提到】
: 请问, 有么有可能 用 c++ 的时候,
: 不能 new 一个很大的array, 或者 在 一个function 里面 不能
: initialize 一个很大的vector ?
: 如果不能, 请问哪里可以查这个上限? 谢谢?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。