实验1网络安全深入理解编程

实验1网络安全深入理解编程

ID:41634871

大小:67.76 KB

页数:9页

时间:2019-08-29

实验1网络安全深入理解编程_第1页
实验1网络安全深入理解编程_第2页
实验1网络安全深入理解编程_第3页
实验1网络安全深入理解编程_第4页
实验1网络安全深入理解编程_第5页
资源描述:

《实验1网络安全深入理解编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《计算机网络安全》实验讲稿授课教师:许玉龙适用于计算机应用技术专业课程简介•课程名称:计算机网络安全•课程类别:专业必修课•授课对象:计科专业•学时:54学时(理论36,实验18)•学分:3学分•考核方法:课程设计+实验+试卷•使用教材:清华大学出版社《网络安全慕础应用与标准》•先修课程:C/C++程序设计、计算机网络、数据库原理等实验一:深入编程理解主要内容一、对内存空间的理解二、函数相关三、对数组的理解四、指针与数组五、结构体一、对内存空间的理解主讲内容:在C中,内存分成5个区,他们分别是堆、栈、自由存储区、全局

2、/静态存储区和常量存储区。栈,就是那些山编译器在需要的时候分配,在不需要的时候自动清勉的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个deleteo如果程序员没有释放掉,那么在程序结束后,操作系统会自动冋收。用new或malloc分配内存时,必须要对此指针赋初值。用delete或free释放内存后,必须要将指针指向NULL不能修改指向常量的指针数据自由存储区,就是那些由malloc等分配的内存块,他和堆是

3、十分相似的,不过它是川free来结束自己的生命的。全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的c语言屮,全局变量乂分为初始化的和未初始化的,在C里而没有这个区分了,他们共同占用同一块内存区。常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多,在《const的思考》一文中,我给出了6种方法)首先,我们举一个例子:voidf(){int*p=newint[5];}这条短短的一句话就包含了堆与栈,看到new,我们首先就应该想到,我们

4、分配了一块堆内存,那么指针p呢?他分配的足一块栈内存,所以这句话的意思就足:在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小,然后调用operatornew分配内存,然后返回这块内存的首地址,放入栈中,他在VC6卜-的汇编代码如下:00401028push14h0040102Acalloperatornew(00401060)0040102Faddesp,400401032movdwordptr[ebp-8],eax00401035moveax,dwordptr[ebp-8]004010

5、38movdwordptr[ebp-4],eax这里,我们为了简单并没有释放内存,那么该怎么去释放呢?是deletep么?澳,错了,应该是delete[]p,这是为了告诉编译器:我删除的是一个数组,VC6就会根据相应的Cookie信息去进行释放内存的工作。函数体中的指针或引用常量不能被返回Char*func(void){charstr[]=wHelloWord";//这个是不能被返冋的,因为str是个指定变量,不是一般的值,函数结束后会被注销掉returnstr;}函数体内的指针变量并不会随着函数的消亡而自动释放问题

6、:栈内存使用下血程序运行冇什么问题?char*GetString(void){charp[]=”helloworld'1;returnp;//编译器将提出警告}voidTest4(void){char*str=NULL;str=GetString();//str的内容是垃圾cout<

7、等等。二-函数相关C++函数中值的传递方式有三种方式:值传递(Passbyvalue)指针传递(Passbypointer)弓I用传递(Passbyreference)voidfun(charc)//passbyvaluevoidfun(char*str)//passbypointervoidfun(char&str)//passbyreferenceC#中的out参数方式,可以实现在子函数中修改主函数中参数的值。如呆输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构函数的返冋类型不

8、能省略,就算没有也要加个voidstaticvoidMain(string[]args){inta=5;intb=9;swap(a,b);Console・WriteLine("afterswap");Console・WriteLine(a);Console・WriteLine(b);Console.Read();}publicstaticvoi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。