重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
当前位置: 首页 > 远程教育 > 国家开放大学
网友您好, 请在下方输入框内输入要搜索的题目:
搜题

题目

[判断题]

下面代码中的指针p为野指针,因为返回的栈内存在函数结束时会被释放()type TimesMatcher struct {base int}func NewTimesMatcher(base int) *TimesMatcher{return &TimesMatcher{base:base}}func main() {p := NewTimesMatcher(3)...}

查看参考答案
更多“下面代码中的指针p为野指针,因为返回的栈内存在函数结束时会被释放()type TimesMatcher struct {base int}func NewTimesMatcher(base int) …”相关的问题

第1题

阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 本题给出四个函数,它们的功能分别

阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

本题给出四个函数,它们的功能分别是:

1.int push(PNODE*top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

2.int pop(PNODE*top,int*e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

3.int enQueue(PNODE*tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

4.int deQueue(PNODE*tail,int*e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为。表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

typedef struct node {

int value;

struct node * next;

} NODE, * PNODE;

【函数1】

int push(PNOOE * top,int e)

{

PNODE p = (PNODE) malloc (sizeof (NODE));

if (! p) return-1;

p->value=e;

(1);

*top=p;

return 0;

}

【函数2】

int pop (PNODE * top,int * e)

{

PNODE p = * top;

if(p == NULL) return-1;

* e = p->value;

(2);

free(p);

return 0;

}

【函数3】

int enQueue (PNODE * tail,int e)

{ PNODE p,t;

t= *tail;

p = (PNODE) malloc(sizeof(NODE));

if(!p) return-1;

p->value=e;

p->next=t->next;

(3);

* tail = p;

return 0;

}

【函数4】

int deQueue(PNODE * tail,int * e)

{ PNODE p,q;

if((* tail)->next == * tail) return-1;

p= (* tail)->next;

q = p ->next;

* e =q ->value;

(4)=q->next;

if(,tail==q) (5);

free(q);

return 0;

}

点击查看答案

第2题

●试题三 阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 本题给出四

●试题三

阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

本题给出四个函数,它们的功能分别是:

1.int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

2.int pop(PNODE *top,int *e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

3.int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

4.int deQueue(PNODE *tail,int *e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为0表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

typedef struct node{

int value;

struct node *next;

}NODE,*PNODE;

【函数1】

int push(PNODE *top,int e)

{

PNODE p=(PNODE)malloc (sizeof(NODE));

if (!p) return-1;

p-> value =e;

(1) ;.

*top=p;

return 0;

}

【函数2】

int pop (PNODE *top,int *e)

{

PNODE p=*top;

if(p==NULL)return-1;

*e=p->value;

(2) ;

free(p);

return 0;

}

【函数3】

int enQueue (PNODE *tail,int e)

{PNODE p,t;

t=*tail;

p=(PNODE)malloc(sizeof(NODE));

if(!p)return-l;

p->value=e;

p->next=t->next;

(3) ;

*tail=p;

return 0;

}

【函数4】

int deQueue(PNODE *tail,int *e)

{PNODE p,q;

if((*tail)->next==*tail)return -1;

p=(*tail)->next;

q=p->next;

*e=q->value;

(4) =q->next;

if(*tail==q) (5) ;

free(q);

return 0;

}

点击查看答案

第3题

在支持多线程的操作系统中,假设进程P创建了若干个线程,那么下面哪些资源是不能被这些线程共享的()

A. 该进程中某线程的栈指针

B. 该进程的代码段

C. 该进程的全局变量

D. 该进程中打开的文件

点击查看答案

第4题

5、下列说法错误的是

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

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

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

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

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

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

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

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

点击查看答案

第5题

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明] 用链式存储结构实现的栈称为

阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。

[说明]

用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:

typedef struct node

{ datatype data;

stmct node * next;

} StackNode, * LinkStack;

由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。

下面各函数的功能说明如下:

(1)LinkStack Init_LinkStack():建立并返回空的链栈;

(2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;

(3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;

(4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。

[函数]

LinkStaek Init_LinkStack()

{ returnNULL;

int Empty_LinkStack (LinkStaek top)

if(top = = NULL) return 1;

else return 0;

LinkStaek Push_LinkStaek(LinkStaektop, datatype X)

{ StaekNode *s;

s=malloc (sizeof(StaekNode) );

(1)= x;

(2)= top;

(3);

return top;

}

LinkStaek Pop_LinkStack (LinkStacktop, datatype * x)

{ StaekNode *p;

if(top = = NULL) return NULL;

else{

* x =(4);

p = top;

(5);

free (p);

return top;

}

}

点击查看答案

第6题

在支持多线程的系统中,进程P创建的若干个线程不能共享的什么

A.进程P的代码段

B.进程P中打开的文件

C.进程P的全局变量

D.进程P中某线程的栈指针

点击查看答案

第7题

在支持多线程的系统中,进程内部的若干个线程不能共享的是

A.进程P中某线程的栈指针

B.进程P的代码段

C.进程P中打开的文件

D.进程P的全局变量

点击查看答案

第8题

在支持多线程的系统中,进程内部的若干个线程不能共享的是

A.进程P中某线程的栈指针

B.进程P的代码段

C.进程P中打开的文件

D.进程P的全局变量

点击查看答案

第9题

在支持多线程的系统中,进程P创建的若干个线程不能共享的什么?

A.进程P的代码段

B.进程P中打开的文件

C.进程P的全局变量

D.进程P中某线程的栈指针

点击查看答案

第10题

55、在支持多线程的系统中,进程P创建的若干线程不能共享的是()。

A.进程P的代码段

B.进程P中打开的文件

C.进程P的全局变量

D.进程P中某线程的栈指针

点击查看答案
赏学吧APP
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

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

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

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

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

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

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

- 微信扫码关注赏学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反赏学吧购买须知被冻结。您可在“赏学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注赏学吧 -
请用微信扫码测试
温馨提示
每个试题只能免费做一次,如需多次做题,请购买搜题卡
立即购买
稍后再说
赏学吧