对以下程序段,下划线中应填入的正确格式是( ) float *p; p= malloc(sizeof(float)); A. (* float) B. (float *) C. float D. float *
时间: 2024-05-18 09:13:30 浏览: 62
下划线中应填入的正确格式是选项 B:`(float *)`。
程序段中定义了一个指向浮点型数据的指针变量 `p`,然后使用 `malloc` 函数为其分配动态内存空间,并将其大小设置为 `sizeof(float)`。
在 C 语言中,指针的类型描述需要放在变量名之前,用括号括起来,例如 `(float *)` 表示一个指向浮点型数据的指针类型。因此,选项 B `(float *)` 是正确的格式。
选项 A 中的格式 `(* float)` 是错误的,应该将类型描述放在变量名之前,用括号括起来。
选项 C 中的格式 `float` 是错误的,应该使用指针类型描述。
选项 D 中的格式 `float *` 表示一个浮点型数据的指针变量类型,而不是指向浮点型数据的指针类型描述,因此也是错误的。
相关问题
对以下程序段,下划线中应填入的正确格式是( ) float *p; p= malloc(sizeof(float)); A. (float *) B. float * C. (* float) D. float
下划线中应填入选项 A. `(float *)`。
程序段中定义了一个浮点型指针 `p`,然后调用了 `malloc` 函数来动态分配内存,分配的内存大小为 `sizeof(float)`。`malloc` 函数返回一个 `void *` 类型的指针,指向分配的内存空间的起始地址。需要将其强制转换为浮点型指针类型,才能将其赋值给浮点型指针 `p`。
因此,正确的程序段应该是:
```c
float *p;
p = (float *)malloc(sizeof(float));
```
选项 A 中的 `(float *)` 表示将 `void *` 类型的指针强制转换为浮点型指针类型。选项 B 中的 `float *` 表示定义了一个浮点型指针,但没有进行类型转换。选项 C 中的 `(* float)` 是一个错误的语法,不能用来表示指针类型。选项 D 中的 `float` 只是表示浮点型的类型,不能用来表示指针类型。
int**p;**p=(int**)malloc(n*sizeof(int*))正确吗?
不, int**p;**p=(int**)malloc(n*sizeof(int*)) 不是正确的。这段代码有两个问题。首先,int** p;声明了一个指向指针的指针变量p。接下来,**p=(int**)malloc(n*sizeof(int*))试图将分配的内存地址赋值给二级指针p,这是不正确的,因为**p是一个值,而不是一个指针。正确的写法应该是 *p = (int*)malloc(n*sizeof(int)),这样可以将分配的内存地址赋值给一级指针p。
阅读全文