若定义了以下函数; void sub(……) {…… *t=(int *)malloc(10*sizeof(int)); …… } 其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是( )A.int *tB.int **tC.long **tD.long *t

题目

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

A.int *t

B.int **t

C.long **t

D.long *t


相似考题
更多“若定义了以下函数;void sub(……){……*t=(int *)malloc(10*sizeof(int));……}其中t是该函数的形参,要 ”相关问题
  • 第1题:

    有变量定义如下: int *p; 通过p指针申请动态空间的语句中表达错误的是________

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

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

    C.p=(int *) calloc(10*sizeof(int));

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


    p=(int *) calloc(10*sizeof(int));

  • 第2题:

    【单选题】若定义了以下函数: 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 ;

  • 第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题:

    若指针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为所选。

  • 第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));