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

admin2021-04-28  22

问题 若有语句: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://kaotiyun.com/show/JWtp777K
0

最新回复(0)