若定义了以下函数: void f(…) { … *p=(double*)malloc (10 * sizeof (double)); … } p是该函数的形参,要求通过p把动态分配存储单位的地址传回主调函数,则形参p的正确定义应当是 ( )A.double*pB.float* *pC.double* *pD.float*p

题目

若定义了以下函数: void f(…) { … *p=(double*)malloc (10 * sizeof (double)); … } p是该函数的形参,要求通过p把动态分配存储单位的地址传回主调函数,则形参p的正确定义应当是 ( )

A.double*p

B.float* *p

C.double* *p

D.float*p


相似考题
参考答案和解析
正确答案:C
更多“若定义了以下函数: void f(…) { … *p=(double*)malloc (10 * sizeof (double)); … } p ”相关问题
  • 第1题:

    若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()

    A.p=2*(int *)malloc (sizeof (int));

    B.p=(int *)malloc (2*sizeof (int));

    C.p=(int *)malloc (2* sizeof (0)));

    D.p= (int*)calloc(2,sizeof (int));


    A 解析:本题考核的知识点是manoc()函数的应用。该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元并把该存储区的首地址作为返回值,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。选项D多了一个参数,不符合malloc()函数的调用格式;整型变量在有的计算机系统里占4个字节,并不一定在所有的计算机系统里都是两个字节,所以选项C不正确;选项A中是申请一个整型的存储空间并把该存储空间的首地址乘以2,这样的做法是不正确的,其存储空间为没乘以2之前的存储空间的2倍的连续存储空间的地址,选项A不正确。所以,4个选项中B为所选。

  • 第2题:

    下面语句是使指针p指向一个double类型的动态存储单元,请填空。 p=()malloc(sizeof(double));


    D

  • 第3题:

    【单选题】若指针p已正确定义,要使p指向两个连续的整型动态存储单元,正确的语句是()。

    A.p=2*(int *)malloc(sizeof(int));

    B.p=(int *)malloc(2*sizeof(int));

    C.p=(int *)malloc(2*2);

    D.p=(int*)malloc(2, sizeof(int));


    p=2*(int*)malloc(sizeof(int));

  • 第4题:

    【单选题】若定义了以下函数: void f (…) { ... *p= (double*)malloc (10*sizeof(double)); ... } p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 。

    A.double *p

    B.float **p

    C.double **p

    D.float *p


    double **p ;

  • 第5题:

    【单选题】若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的动态分配语句是 。

    A.p=2*(int*)malloc(sizeof(int));

    B.p= (int*)malloc(2*sizeof(int));

    C.p= (int*)malloc(2*sizeof (unsigned int));

    D.p= (int* )malloc(2,sizeof(int));


    p=2*(int*)malloc(sizeof(int));