sizeof 在数组创建后在 C++ 中工作不寻常
sizeof works unusual at c++ after array creation
可能的重复项:
如何查找 sizeof(指向数组的指针)
我正在使用以下代码创建一个数组
float *A;
A = (float *) malloc(100*sizeof(float));
float *B;
B = (float *) malloc(100*sizeof(float));
但是在这些之后,当我通过以下内容键入 A 和 B 的大小时,我得到 2 的结果,因为我希望看到 100。
sizeof(A)/sizeof(float)
你的期望是错误的。 A
是一个float*
,所以它的大小将是sizeof(float*)
的,不管你实际如何分配它。
如果你有一个静态数组 - 即 float A[100]
,那么这将起作用。
由于这是C++,请使用 std::array
或 std::vector
.
最坏的情况是使用 new[]
.绝对不要使用malloc
.
这仅适用于在当前范围内定义的静态数组。
您在示例中得到的只是指向float
的指针的大小除以 float
的大小。
相关文章:
- C++中的memset函数工作不正常
- 通用线程池类工作不正常
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- C++工作不统一,所有变量都定义
- 名为DLL的C++windows服务程序工作不正常
- C++-循环中的If语句工作不正常
- While循环和if/else语句工作不正常
- C++模板选择 - 不寻常的情况
- C 结构具有CHAR数组以不寻常的方式初始化为零
- C++:最大数组值函数工作不正常
- 以不寻常的方式创建指针
- VS为我提供了对构造函数的另一个解决方案,但我想知道为什么我的工作不起作用
- Box2D不寻常的错误.为什么 0阻止错误
- 特征矩阵 ros/cols 工作不正确
- EN_UPDATE工作不可靠
- 工会工作不正常
- 为什么这个循环运行不可见的代码?工作不正常
- C++STL映射键和值工作不正常
- c++文件指针工作不正常
- sizeof 在数组创建后在 C++ 中工作不寻常