为浮点数组动态分配内存

时间:2018-05-21 06:05:47

标签: c++ dynamic-allocation

在尝试理解C ++中的一些代码时,我遇到了以下代码(并试图理解其含义):

int SIZE = 256;
float* A = (float *) malloc(SIZE * sizeof(float*));
for (int i=0; i<M*K; i++) { A[i] = 0.0; }

我想问一下,上面的内容与以下内容有何不同:

float* A = (float *) malloc(SIZE * sizeof(float));

当我编译代码时,两个版本的“float * A =”编译并执行ok。

2 个答案:

答案 0 :(得分:1)

  

......我想问一下,上面的内容与以下内容有什么不同......

sizeof(float*)是指向float的指针的大小。在大多数系统中,无论指针中有多少字节,通常(但不总是)硬件地址寄存器的大小。 sizeof(float)是float中的字节数,可能与指针的大小相同,也可能不同。

答案 1 :(得分:0)

Float*是指针。无论指针指向哪种数据类型,它的大小都是固定的,在32位机器上是32位,在64位机器上是64位。