若有语句:void*P=malloc(80);,则以下叙述错误的是( )。

admin2022-04-01  25

问题 若有语句:void*P=malloc(80);,则以下叙述错误的是(          )。

选项 A、可以通过指针P直接访问用malloc开辟的这块内存
B、p所指内存可以通过强制类型转换当作具有20个int型元素的一维数组来使用
C、p所指内存可以通过强制类型转换当作具有10个double型元素的一维数组来使用
D、p所指内存可以通过强制类型转换当作具有80个char型元素的一维数组来使用

答案A

解析 题意中使用malloc()函数分配了80个字节的内存单元,void指针p指向该内存单元,在C语言中,void*不能直接使用,必须利用强制类型转换将其转成所需的类型才能使用,选项A错误;int类型的元素占4个字节,所以可以将p指向的内存强制类型转换成具有20个int类型的一维数组来使用,同理,也可以强制类型转换成10个double类型的一维数组,或强制类型转换成80个char类型的一维数组,选项B、C、D正确,本题答案为A。
转载请注明原文地址:https://jikaoti.com/ti/M8d0FFFM
0

最新回复(0)