-7

可能重复:
如何找到 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)
4

2 回答 2

11

你的期望是错误的。A是 a float*,因此sizeof(float*)无论您实际如何分配它,它的大小都是 。

如果您有一个静态数组 - 即float A[100],那么这将起作用。

因为这是 C++,所以使用std::arrayor std::vector

最坏的情况,使用new[]. 绝对不要用malloc

于 2013-01-27T00:27:53.887 回答
4

这仅适用于在当前范围内定义的静态数组。

您在示例中得到的只是指针float的大小除以float.

于 2013-01-27T00:30:01.383 回答