- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
改错题
p=malloc(sizeof(int)*10); q=malloc(sizeof(int)*20);
p=q; free(p); free(q);
Free(q) 错了,因为p=q后,就指向同一块地址了。 内存泄露(p分配了空间没释放)
==============我的
一:由于malloc函数返回值为void *,所以还是应该强制转换为(int *),虽然我在运行时没有错,但一般都要指定指针类型。
二:由于p=q,两个指针指向同一个地址,free(p)之后,则该内存空间被释放,则q此时就没有具体指向一个地址,free(q)就会出错。
一般我们常说的内存泄露是指堆内存泄露,堆内存是指程序从对中分配的,大小任意的(内存块的大小可以再程序运行期确定),使用完后必须先释放内存。
和去年一样 void swap(char *a,char *b)
{char *temp; *temp=*a;*a=*b;*b=*temp;}
函数类型大小写错误。2. 交换形参指针地址不能修改实参的值。
正确修改法:见下
(解释)实参是str1和str2的地址 ,函数里改变了*p,*q的值,也就是str1和str2中存放的字符串的地址做了改变。所以str1里存放的str2所指字符串的地址
for(num=N;arr[num]!=item;num--);
printf(%d,num);
问异常情况
结果可能是输出一个负值,因为item是个变量,分配了存储空间, arr[-2]也是可以输出的,因为arr只是个地址,经过测试会找到item,printf他的地址
=========我的
首先如果item在数组中,则不会出错,可以输出所在的位置。如果不在,则num最后会变为负值,由于C语言没有自动对数组进行下标检查,则会产生数组下标越界,而且会继续运行,出现死循环。如果编译器检查,则会产生数组下标越界出错。
简答题
if(b) s1 else s2; 请问是什么结构,并用伪代码写出来(注明条件跳转和强制跳转)
选择结构。
Begin
If b!=0 条件跳转
Do S1;
否则 Do S2;
局部变量,静态局部变量,静态全局变量的存储位置
局部变量: 栈区局部静态变量:静态区全局变量: 静态区的常量区全局静态变量:静态区
网上的资料,科普下: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由系统释放 4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区—存放函数体的二进制代码。
1、栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
2、堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
3、自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
4、全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的c语言中,全局变量又分为初始化的和未初始化的,在c++里面没有这个区分了,他们共同占用同一块内存区。
5、常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。
求链表最大的数,并插入链表尾部(代码参照填空题第一题选择排序法,半分钟能鲁完)
复习下冒泡排序
======我的(不要此法,不太符合题意,正确见法二)
#includestdio.h
2 #includestdlib.h
3
4 typedef struct node{
5
6 int data;
7 struct node *next;
8 }LNode,*PLNode;
9
10
11 void MoveMax(LNode *L)
12 {
13 LNode *pa,*pb,*pre; //==pre指向pb的前一个节点,最后指向最后一个节点
14 in
您可能关注的文档
最近下载
- 2025年高考历史试卷(山东卷)附答案解析.docx VIP
- 中国文化古城—西安.-PPT.pptx VIP
- 《西方社会学理论》全套教学课件.ppt
- 第7课 实践出真知 课件 中职高教版哲学与人生.pptx
- 一针疗法之肩周炎.ppt
- 2025中国银行中银国际证券股份有限公司招聘8人笔试模拟试题及答案解析.docx VIP
- 神经介入治疗概述及护理常规.ppt VIP
- 舒伯特第二即兴曲,降E大调 D.899之2 Impromptu No. 2 in E flat major, D. 899, No. 2 Op90 Schubert钢琴谱.pdf VIP
- 深潜器钛合金框架结构装配焊接工艺研究-中国造船工程学会.doc
- 村两委工作细则汇编.doc VIP
文档评论(0)