相关疑难解决方法(0)

有没有办法以编程方式确定C++数组的大小?如果没有,为什么?

这个问题的灵感来自一个类似的问题:delete []"如何"知道操作数数组的大小?

我的问题有点不同: 有没有办法以编程方式确定C++数组的大小?如果没有,为什么? 我看到的每个接受数组的函数也需要一个整数参数来赋予它大小.但正如链接问题指出的那样,delete[]必须知道要释放的内存大小.

考虑这个C++代码:

int* arr = new int[256];
printf("Size of arr: %d\n", sizeof(arr));
Run Code Online (Sandbox Code Playgroud)

这打印" Size of arr: 4",这只是指针的大小.有一些打印256的函数会很好,但我不认为C++中存在一个函数.(同样,问题的一部分是为什么它不存在.)

澄清:我知道如果我在堆栈上声明数组而不是堆(即" int arr[256];"),则sizeof运算符将返回1024(数组长度*sizeof(int)).

c++ arrays pointers memory-management

61
推荐指数
4
解决办法
6万
查看次数

标签 统计

arrays ×1

c++ ×1

memory-management ×1

pointers ×1