pointers - 获取数组指针的大小c ++
问题描述
如何使用 new double[...] 获取指针数组的大小
使用这是有效的
double arr[10];
sizeof(arr)/sizeof(arr[0]);
但这不是
double *arr;
arr=new double[10];
sizeof(arr)/sizeof(arr[0]);
解决方案
最初,您声明了一个大小为 10 的双精度数组。
double arr[10];
然后这个语句给出了数组中数组元素的数量。是的没错。
sizeof(arr)/sizeof(arr[0]);
在其他程序中这个语句....
double *arr;
创建一个指向双精度的指针。
和这个...
arr=new double[10];
将数组的起始地址存储在 arr 中。但是 arr 仍然是一个指向 double 的指针。
这个说法 ...
sizeof(arr)/sizeof(arr[0]);
是罪魁祸首。这里sizeof(arr)将指针的大小返回为 double而不是数组的大小。并且 sizeof(arr[0]) 返回 double 的大小。根据您的机器,您的指针大小和双精度大小可能会有所不同。但它会打印两个值的商。
推荐阅读
- html - 子菜单下拉查询
- java - 从 JTDS 切换到 JDBC 驱动程序后,对象名称 #temp 无效
- python - 在 supervisord 上运行的 Flask 应用程序如何打开 SSH 隧道?
- amazon-web-services - Boto3 s3 put 操作获取“HTTPClientError”
- reactjs - NPM 命令没有显示
- typescript - 基于输入的动态函数返回类型 - TypeScript
- python - pip 卸载包和唯一依赖项
- visual-studio-code - 如何将 VSCode 命令作为任务运行
- python - 糟糕的解释器:权限被拒绝
- javafx - JavaFx:由:java.lang.ClassCastException:无法转换为类引起