C — malloc( ) and free( )

  • C 语言中使用malloc( )函数申请的内存空间,为什么一定要使用free释放?

**malloc()函数功能:是从堆区申请一段连续的空间,函数结束后不会自动释放,如果不调用free()去释放的话,要等到程序结束后,操作系统才会自动回收。

    1. malloc后的内存除了等到free来释放,还可以等到程序运行结束时自动释放。
    2. 程序运行过程中,如果一直malloc内存而不释放会导致这部分内存不能被再次使用,即内存泄露。这样以来,应用程序会逐渐用光所有可用的内存,最终导致应用程序因内存不足而崩溃停止。
    3. 所以一个好的习惯是,malloc后一定要记得free之。
  • 用malloc函数申请0字节内存会返回NULL指针吗?

申请0字节内存,函数并不返回NULL,而是返回一个正常的内存地址。但是你却无法使用这块大小为0的内存。

  • free函数:斩断指针变量与这块内存的关系。

C — 整型数与浮点型数进行操作,为什么整型数会自动转换为浮点型?

不同的数据类型在进行混合运算时,会发生数据类型的自动转换,在由编译系统自动完成

若参与运算的数据类型不同,则先转换为同一类型,然后进行运算;转换按数据长度增加的方向进行,以保证精度不降低

.pyc文件?

  • 什么是pyc文件?

python提供了内置的类库( py_compile 模块)来实现把py文件编译为pyc文件。pyc是一种二进制文件,是由py文件经过编译后生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件在2.4版本的python上是无法执行的。

  • 为什么需要pyc文件?

加密。因为py文件是可以直接看到源码的,若是开发商业软件的话,不可能把源码泄漏出去。所以就需要编译为pyc后,再发布出去。根据python源码中提供的opcode,可以根据pyc文件反编译出py文件源码。也可以自己修改python的源代码中的opcode文件,重新编译python,从而防止不法分子的破解。

  • pyc文件一般由3个部分组成:
    1. 最开始4个字节是一个Maigc int,标识此pyc的版本信息,不同的版本的 Magic 都在 Python/import.c 内定义
    2. 接下来四个字节还是个int,是pyc产生的时间(1970.01.01到产生pyc时候的秒数)
    3. 接下来是个序列化了的 PyCodeObject(此结构在 Include/code.h 内定义),序列化方法在 Python/marshal.c 内定义

Python中安装第三方包的方法?

  1. 使用pip:大多数库都可以通过pip安装,安装方法为,在命令行窗口输入pip install libname(libname为库名)。或可以下载安装包之后离线安装,方法是pip install libpath(libpath为本地安装包地址),这些安装包一般以whl为后缀名。表示python扩展包的windows环境下的二进制文件。
  2. 源文件安装:如果下载下来的安装包为带有源文件的压缩包,解压之后,运行setup.py进行安装,方法是命令行切换到安装包中setup.py文件所在的目录,执行 python setup.py install
  3. 运行安装包:有些类库提供了双击运行直接安装的安装包,比这些安装包的后缀名为msi或者exe。下载下来后,双击运行之后就安装好了,前提是要根据python的版本及windows的位数下载对应的安装包,否则安装过程会报错或者直接提示无法安装。

验证一个网站的所有链接的有效性,怎么验证?

个人想法,求大家指正:获取页面上所有元素属性包含"href"的元素,可以用getAttribute(“href”)方法,然后做个循环依次点击验证会不会报404错误等。(补充:链接测试必须在集成测试阶段完成,也就是,在整个Web应用系统的所有页面开发完成之后进行链接测试)

针对全新的任务,怎样着手?

个人想法,求大家指正:

  1. 从整体全局的角度了解整个任务的流程、步骤;
  2. 了解实现任务的各种方法,从中找出最有解;
  3. 逐步配置环境,并验证没有问题;
  4. ……

note:个人总结分享,欢迎指正,分享

最新文章

  1. include/linux/tasks.h
  2. 【Linux_Fedora_系统管理系列】_1_用户登录和系统初始配置
  3. java并发:阻塞队列
  4. 【POJ 3241】Object Clustering 曼哈顿距离最小生成树
  5. uva10870 矩阵
  6. C#去掉list集合中的重复数据
  7. Linux守护进程实现程序只运行一次
  8. 关于Qt的事件循环以及QEventLoop的简单使用
  9. 【SQLServer】使用T-SQL访问远程数据库:openrowset 和 openquery 以及连接服务器的创建
  10. 网易云音乐 歌词制作软件 BesLyric
  11. IP定位 C#
  12. python 装饰器、生成器、迭代器
  13. ajax post传值
  14. java类的初始化
  15. 浅谈viewport
  16. 泛微关于js设计的一些小技巧
  17. Java提高篇(二):IO字节流、字符流和处理流
  18. HTML/CSS: 如何制作未读信息图标
  19. 图表相同数据会自动合并问题(finereport)
  20. thinkphp3.2.3模板渲染支持三元表达式

热门文章

  1. AE的Annotation学习摘记
  2. Microduino-W5500
  3. asp.net mvc的权限管理设计
  4. mysql字段A复制到字段B,并替换指定字符
  5. 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'
  6. java生成随机汉字
  7. activity.runOnUiThread()内的run()方法没有被执行
  8. inexact rename detection was skipped due to too many files
  9. 通过查询数据库中的数据匹配在页面上:(set单条数据属性是在页面上的显示与foreach的不同) 通过ID修改提取位置表信息
  10. codeforces 689B B. Mike and Shortcuts(bfs)