在尝试理解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。
答案 0 :(得分:1)
......我想问一下,上面的内容与以下内容有什么不同......
sizeof(float*)
是指向float的指针的大小。在大多数系统中,无论指针中有多少字节,通常(但不总是)硬件地址寄存器的大小。 sizeof(float)
是float中的字节数,可能与指针的大小相同,也可能不同。
答案 1 :(得分:0)
Float*
是指针。无论指针指向哪种数据类型,它的大小都是固定的,在32位机器上是32位,在64位机器上是64位。