• 笔记——malloc、free、不同数据类型操作、.pyc文件、python安装第三方包、验证一个网站的所有链接有效性


    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 libnamelibname为库名)。或可以下载安装包之后离线安装,方法是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:个人总结分享,欢迎指正,分享

  • 相关阅读:
    spring揭秘 读书笔记 六 bean的一生
    分枝限界算法
    libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)
    Unity学习笔记 之 发射小球碰撞物体的代码记录
    hdu1281 棋盘游戏 --- 最大匹配
    javascript设计模式
    3、Android中Activity的跳转
    2.11 确定运行计划
    php扩展之 pdo_mysql.so
    POJ 1061 青蛙的约会(扩展欧几里得)
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/8426110.html
Copyright © 2020-2023  润新知