【发布时间】:2012-08-09 22:47:16
【问题描述】:
我正在尝试在堆栈上创建一个固定大小的字符数组(它确实需要在堆栈上分配)。我遇到的问题是我无法让堆栈为数组分配超过 8 个字节:
#include <iostream>
using namespace std;
int main(){
char* str = new char[50];
cout << sizeof(str) << endl;
return 0;
}
打印
8
如何在堆栈上分配一个固定大小的数组(在本例中为 50 个字节。但它可以是任意数字)?
【问题讨论】:
-
new与在堆栈上分配相反。您需要的是一个普通的普通数组。char str[50];会很好的。如果你有 C++11,std::array<char, 50> str;会更好。 -
我会检查一下
sizeof()测量的是什么~这不是你想象的那样。 -
这里有一些额外的信息给你。这是一个解释 sizeOf 工作原理的链接:msdn.microsoft.com/en-us/library/4s7x1k91(v=vs.71).aspx
标签: c++ memory-management stack