大学网课搜题引擎
首页
学堂在线
C语言程序设计精髓
第十三章 原来内存也可以这么玩,我是指针我怕谁
题目详情
简答题
指针变量所占的内存被释放了,也就意味着它所指向的动态内存也会被自动释放。
查看答案与解析
简答题
申请一个具有n个int型元素的一维动态数组,可以使用下面的哪条语句? A、p = (int *) malloc(n * sizeof(int)); B、p = (int *) malloc(n, sizeof(int)); C、p = (int *)calloc(n * sizeof(int)); D、p = (int *) realloc(n * sizeof(int));
简答题
下面关于内存泄漏问题的描述错误的是() A、只要程序中使用的malloc和free的数量是配对的,那么就不会出现内存泄漏问题。 B、出现内存泄露并不是一定会导致系统发生异常,因为实际中内存耗尽的情况非常罕见,内存泄露问题的严重程度取决于每次函数调用时遗留内存垃圾的多少和函数被调用的次数。 C、内存泄漏问题通常需要运行相当一段时间后才能发现。 D、C语言没有提供内存垃圾回收机制,因此需要程序调用free函数来释放不再需要的动态内存。
简答题
下面程序的功能是通过动态分配内存函数malloc产生动态数组,程序的某次运行结果如下:Enter array size:8↙array[0]=0array[1]=10array[2]=20array[3]=30array[4]=40array[5]=50array[6]=60array[7]=70按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#includestdio.h #includestdlib.h intmain() { int*p,n,i; printf(Enterarraysize:); scanf(%d,n); __________________; for(i=0;in;i++) { ____________; } for(i=0;in;i++) { _______________; } free(p); return0; } A、第8行: p=(int *)malloc(n*sizeof(int));第12行: *(p+i)=i*10第16行: printf(array[%d]=%d ,i,*(p+i)) B、第8行: p=(int *)(n*malloc(sizeof(int*)))第12行:*p+i=i*10第16行:printf(array[%d]=%d ,i,*(p+i)) C、第8行: p=(int *)malloc(n*sizeof(int));第12行:*p+i=i*10第16行:printf(array[i]=%d ,i,*p+i) D、第8行: p=(int)malloc(n*sizeof(int *));第12行:*(p+i)=i*10第16行:printf(array[i]=%d ,i,*(p+i))
简答题
申请一个m行n列的整型的二维动态数组,可以使用下面的哪条语句? A、p = (int *) malloc(m*n*sizeof(int)); B、p = (int *) malloc(m*n, sizeof(int)); C、p = (int *)calloc(m * n * sizeof(int)); D、int p[m][n];
简答题
下面程序希望得到的运行结果如下: Total string numbers = 3 How are you 目前程序存在错误,请找出错误所在并加以改正。 #include void Print(char *arr[], int len); int main() { char *pArray[] = {"How","are","you"}; int num = sizeof(pArray) / sizeof(char); printf("Total string numbers = %d ", num); Print(pArray, num); return 0; } void Print(char *arr[], int len) { int i; for (i=0; i { printf("%s ", arr[i]); } printf(" "); } A、第6行错误 改正为:int num = sizeof(pArray) / sizeof(char*); B、第6行错误 改正为:int num = sizeof(char*) / sizeof(pArray); C、第12行错误 改正为:char arr[] D、第5行错误 改正为:char *pArray = {"How","are","you"}
简答题
下列说法错误的是 A、无论是在栈上还是在堆上分配的内存都需要程序员用free来释放。 B、对于用动态内存分配函数申请的内存,如果在使用结束后不释放的话,会发生内存泄漏。 C、对于用动态内存分配函数申请的内存,如果在释放以后还继续使用的话,那么会产生非法内存访问的错误。 D、用free释放指针指向的内存以后,仍然继续访问指针所指向的内存,将导致产生悬空指针,也称为野指针。
简答题
用free释放指针变量所指向的内存以后,就意味着该指针变量变成了空指针。
C语言程序设计精髓
章节列表
第一章 初识C语言从认识变量和常量开始
21
第二章 数字间的那些事儿,做点计算哈
15
第三章 从键盘中来,到键盘中,开始输入和输出啦
22
第四章 无处不在的抉择
23
期末考试
13
第五章 周而复始的循环之道
20
第六章 函数:分工与合作的艺术
15
第七章 《盗梦空间》的逻辑:探寻递归的奥秘
21
第八章 一堆数据来了,你准备好了吗?
13
第九章 指针:C语言世界中所向披靡的“金箍棒”
8
第十章 字符串:C语言世界中的大力水手
12
第十一章 指针的孪生兄弟
12
第十二章 海陆空齐上阵:又来了一堆数据
14
第十三章 原来内存也可以这么玩,我是指针我怕谁
8
第十四章 结构设计的艺术
5
第十五章 学会保存你的数据
11