假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。
A: free(p)
B: delete(p)
C: free(*p)
D: free(&p)
A: free(p)
B: delete(p)
C: free(*p)
D: free(&p)
举一反三
- 已有定义语句int*p;以下能动态分配一个整型存储单元,并把该单元的首地址正确赋值给指针变量p的语句是()。 A: *p=(int*)malloc(sizeof(int)); B: p=(int*)malloc(sizeof(int)); C: p=*malloc(sizeof(int)); D: free(p);
- 动态存储分配,可调用函数malloc(),如int *p;p=(int *)malloc(sizeof(p));
- 希望申请能存储10个整数的存储空间并将指针p指向申请空间的起始地址,能实现的语句是____________。( ) A: int *p; p=(int *)malloc(sizeof(int)*10); B: int *p; p=(int *)malloc(sizeof(int), C: int *p; p=(int *)calloc(sizeof(int)*10); 10); D: double *p; p=(int *)malloc(sizeof(int),10);
- 已建立一单向链表,指针变量p1指向链表中某一节点,p2指向下一节点,将p2所指节点从链表中删除并释放的语句为()。 A: p=p;free(p) B: p–>next=p–>next;free(p) C: p.next=p.next;free(p) D: p=p–>next;free(p)
- 若指针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));