搜题
网友您好,请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
提问人:网友lingmu 发布时间:2022-01-07
[主观题]

下列说法错误的是

A、无论是在栈上还是在堆上分配的内存都需要程序员用free来释放。

B、用return语句既可以从函数返回调用动态内存分配函数动态申请的内存的地址,也可以从函数返回在函数内定义的局部变量的地址。

C、在动态分配一块内存后,接下来又丢失了对这块内存的追踪路径,这种错误属于悬空指针即野指针。

D、对于用动态内存分配函数申请的内存,如果在使用结束后不释放的话,会发生内存泄漏。

E、对于用动态内存分配函数申请的内存,如果在释放以后还继续使用的话,那么会产生非法内存访问的错误。

F、用free释放指针指向的内存以后,仍然继续访问指针所指向的内存,将导致产生悬空指针,也称为野指针。

G、计算动态分配内存的字节数的时候,应该始终使用sizeof运算符,因为某些类型在不同的系统下所占内存空间的字节数是不同的。

H、为了避免内存分配不成功就使用它,应该在使用内存前检查指针是否为空指针。

简答题官方参考答案 (由简答题聘请的专业题库老师提供的解答)
查看官方参考答案
更多“下列说法错误的是”相关的问题
第1题
检查下面的DFD图,指出里面的错误: [图]...

检查下面的DFD图,指出里面的错误:

点击查看答案
第2题
关于名片夹的作用,下列说法错误的是?
A.做事情的准备性

B.作为职业人的节奏感

C.做事情有条理性

D.方便装东西

点击查看答案
第3题
假设用下面语句申请了一块动态内存,并用指针变量指p向了它,用这块内存保存m*n个整型元素,即作为一个二维动态数组来使用,那么下面哪种通过p访问这个二维动态数组第i行第j列元素的方法是正确的()。 p = (int *) malloc(m*n*sizeof(int)); 或者 p = (int *) calloc(m*n, sizeof(int));

A、p[i*n+j]

B、*(p+i*n+j)

C、p[j*n+i]

D、p[i][j]

E、*p[i*n+j]

F、p+i*n

G、p+i*n+j

点击查看答案
第4题
下列说法错误的是

A、系统对使用动态内存分配函数malloc()申请的存储空间自动初始化为0.

B、函数realloc()用于改变原来分配的存储空间的大小。

C、对于函数void * calloc(unsigned int num, unsigned int size)而言,成功调用该函数就相当于声明了一个一维数组,参数num决定了数组的长度即元素个数,参数size确定了每个数组元素的所占内存空间的字节数。

D、向系统动态申请的内存使用结束后,应使用free()函数进行内存释放。

E、函数void * calloc(unsigned int num, unsigned int size)的功能是向系统申请num个size大小的连续内存块,并初始化为0

F、void*型指针不指定其指向哪一种类型,可指向任意类型的变量,是一种generic或typeless类型的指针,使用时需强转(Type*)为其他类型。

G、用calloc动态申请的内存会自动初始化为0.

点击查看答案
第5题
下面关于内存泄漏问题的描述错误的是()

A、只要程序中使用的malloc和free的数量是配对的,那么就不会出现内存泄漏问题。

B、内存泄漏属于非法内存访问错误,就是代码访问了不该访问的内存。

C、指针变量所占的内存被释放了,也就意味着它所指向的动态内存也会被自动释放。

D、出现内存泄露并不是一定会导致系统发生异常,因为实际中内存耗尽的情况非常罕见,内存泄露问题的严重程度取决于每次函数调用时遗留内存垃圾的多少和函数被调用的次数。

E、内存泄漏问题通常需要运行相当一段时间后才能发现。

F、C语言没有提供内存垃圾回收机制,因此需要程序调用free函数来释放不再需要的动态内存。

G、需长期稳定运行的服务程序,以及需要频繁对内存操作且消耗空间较大的程序,通常对内存泄漏比较敏感。

点击查看答案
第6题

关于下面程序中的变量和常量分布的内存区域说法错误的是 #include <stdio.h> #include <stdlib.h> static char array2[] = {"dddd"}; char array3[100]; int main() { short b; char array1[]="aaaa"; char *p; p = (char *)malloc(10*sizeof(int)); strcpy(p,"bbbb"); free(p); return 0; }

A、指针变量p存放在堆中

B、"bbbb"存放在栈中

C、array3数组存放在静态存储区

D、本题中指针变量p指向的内存空间在堆中

E、"bbbb"存放在常量区

F、array2存放在静态存储区

点击查看答案
第7题
对于函数void * malloc(unsigned int size)而言,下面的说法中正确的是

A、void *的含义是指该指针基类型未知,若将函数调用的返回值赋值给某个指针,必须做强制类型转换,将返回的指针值转换为所需的类型。

B、void *的含义是指函数调用的返回值为指针类型,该指针为空指针,其值为NULL。

C、void *的含义是指该函数没有返回值

D、以上说法都不对

点击查看答案
第8题

下面程序希望得到的运行结果如下: Total string numbers = 3 How are you 目前程序存在错误,请找出错误所在并加以改正。 #include <stdio.h> void Print(char *arr[], int len); int main() { char *pArray[] = {"How","are","you"}; int num = sizeof(pArray) / sizeof(char); printf("Total string numbers = %d\n", num); Print(pArray, num); return 0; } void Print(char *arr[], int len) { int i; for (i=0; i <len; i++) { printf("%s ", arr[i]); } printf("\n");> 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"}

点击查看答案
第9题
下面说法错误的是

A、调用malloc函数后将会返回一个指针类型的地址,该值可以直接赋值给特定的指针变量,无需强制类型转换。

B、如果希望在程序的运行期间改变数组的长度,则需要使用动态内存分配函数实现动态数组。

C、动态内存分配是指在程序运行时为变量分配内存的一种方法。

D、栈和堆都属于动态存储区。

点击查看答案
第10题

下面程序的功能是通过动态分配内存函数malloc产生动态数组,程序的某次运行结果如下: Enter array size:8↙ array[0]=0 array[1]=10 array[2]=20 array[3]=30 array[4]=40 array[5]=50 array[6]=60 array[7]=70 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h> #include <stdlib.h> int main() { int *p,n,i; printf("Enter array size:"); scanf("%d",&n); __________________; for(i=0;i <n;i++) { ____________; } for(i="0;i&lt;n;i++)" _______________; free(p); return 0;> A、第8行: p=(int *)malloc(n*sizeof(int)); 第12行: *(p+i)=i*10 第16行: printf("array[%d]=%d\n",i,*(p+i))

B、第8行: p=(int *)(n*malloc(sizeof(int*))) 第12行: *p+i=i*10 第16行: printf("array[%d]=%d\n",i,*(p+i))

C、第8行: p=(int *)malloc(n*sizeof(int)); 第12行: *p+i=i*10 第16行: printf("array[i]=%d\n",i,*p+i)

D、第8行: p=(int)malloc(n*sizeof(int *)); 第12行: *(p+i)=i*10 第16行: printf("array[i]=%d\n",i,*(p+i))

点击查看答案
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注简答题 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注简答题 -
请用微信扫码测试
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

简答题
下载APP
关注公众号
TOP