已定义char*m,n[5],并执行了m=malloc(80)后,以下语句中正确的是( )。

admin2013-08-15  53

问题 已定义char*m,n[5],并执行了m=malloc(80)后,以下语句中正确的是(    )。

选项 A、scanf("%s",*m);
B、m="desk"
C、n="desk"
D、n=m;

答案B

解析 对于选项A,scanf函数输入数据时必须按地址进行操作,使用*m显然是错误的。对于选项D)和C),对字符数组n不能直接将字符串赋给它,需借助其他函数;m指向80个单元存储空间的起始位置,赋给数组n显然是错误的。对于选项B),使m指向“desk”字符串的起始地址是正确的。但要注意这种情况下,字符串“desk”并没有放入m所分配的80个字节的内存单元中,此语句执行后,分配给m的80个字节的内存单元丢失了。
转载请注明原文地址:https://jikaoti.com/ti/K2n0FFFM
0

最新回复(0)