有以下程序: #nclude #include void fun(double*p1,double*02,double * s) {s=(double*)calloc(1,sizeof(double)); *s=*p

admin2019-01-11  34

问题 有以下程序:
    #nclude
    #include
    void fun(double*p1,double*02,double * s)
    {s=(double*)calloc(1,sizeof(double));
    *s=*p1+* 02;
    }
    main()
    {double aE 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/8ixp777K
0

最新回复(0)