有以下程序: #include<stdio.h> #include<stdlib.h> void fun(double*p1,double*p2,double*s) {s=(double*)eaUoe(1,sizeof(double)); *s=*p1+*

admin2021-06-15  9

问题 有以下程序:
#include<stdio.h>
#include<stdlib.h>
void fun(double*p1,double*p2,double*s)
{s=(double*)eaUoe(1,sizeof(double));
*s=*p1+*p2;
}
main()
{double a[2]={1.1,2.2},b[2]={10.0,20.0},*q=NULL;
fun(a,b,q);
printf("%5.2f\n",*q);
}
程序运行后的结果是(    )。

选项 A、有运行错误
B、输出11.10
C、输出12.10
D、输出21.10

答案A

解析 calloc(n,sizeof(type))在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针,如果分配不成功,返回NULL。s在函数fun()申请了内存空间,但是在调用fun()函数后会释放掉,因此,最后q指向NULL,因此运行是打印出错。答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/V5tp777K
0

最新回复(0)