第二次作业

一观看视频笔记

 

二 练习的代码

 

三 pta和视频问题

1 没看懂Ctrl c crtl z 含义,和所讲的EOF,没听懂讲的是啥.

2定义的int **p是错误表达吧

3pta 选择题第四个 指针变量中保存的不一定是一个地址 感觉有点对的样子,搜索出的答案讲的不咋明白,也没看懂。

 四 问题

为啥使用未初始化的指针会错误?

统会给指针分配个随机地址,示例如下:

int *p; //或者 int *p = NULL;

*p = 10; //错误,指针未初始化

上述程序将值10写到未知的内存位置,如果p指向系统内存空间,这样很可能把系统本来地址里的内容给覆盖了,会导致程序或者系统的崩溃。

 没释放内存有影响?

在堆中开辟内存以后,使用完成必须释放内存,否则会造成内存泄漏,示例如下:

int *p = (int *)malloc(100);
···
free(p);
p = NULL;没看懂解释,大概知道必须释放指针才能正确应用malloc是一个函数

malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址
,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,且分配的大小就是程序要求的大小。
posted @ 2020-03-08 20:51  计科二班郭京伟  阅读(178)  评论(0编辑  收藏  举报