当前位置: 首页 > C/C++
  • 软件测试实验报告

    软件测试实验报告

    软件测试实验报告: 实验一:内存泄露测试 /************************************************************************* > File Name: 1.cpp > Author: > Mail: > Created Time: 2017年05月19日 星期五 14时39分38秒 *************************************** ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • C/C++ 代码安全(五)

    C/C++ 代码安全(五)

    规则: 不要使用rand( ) 函数生成伪随机数,这个函数不保证不保证产生随机序列质量,比较好预测。使用random( )  替换。 规则: 正确的设置伪随机数生成器的种子,在random() 之前调用srandom( ) ,以设置伪随机数生成器。 规则: 不要向asctime( ) 函数提供无效数据。 规则: 确保控制永远不会到达非void 函数的结束位 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(四)

    C/C++ 代码安全(四)

    规则: 不要访问已经释放的内存。使用引用被free( ) 或者 realloc( ) 函数调用释放的内存指针值是未确定的。 需要注意的一点是,realloc( )  可能会释放原来的指针。 规则: 在不需要时释放动态分配的内存。 规则: 动态分配和复制包含灵活数组成员结构。为了避免未定义行为,包含灵活数组成员的结构应该始终动态分配, ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(三)

    C/C++ 代码安全(三)

    规则: 确保无符号整数运算不产生回绕,如果底层整数表示无法表示无符号整数运算的结果,该值可能发生回绕。在8086处理器上整数溢出也就仅仅会发生一个标志位修改罢了。所以我们还是要注意整数溢出发生回绕现象。 C /*错误实例,这很有可能发生回绕*/ void func(unsigned int ui_a,unsi ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(二)

    C/C++ 代码安全(二)

    规则: 声明的每一个对象都必须具有正确的存储期。 对象的生命周期是程序执行的一部分,在此期间保证对象保留存储空间。任何形式的访问已经超出生命周期的行为都是未定义的。 引用超出生命周期的对象,可能导致攻击者执行任意代码。 规则: 在使用前声明表示符,不要隐含类型。 规则: 不要声明具有冲突链接类别的表示 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C/C++ 代码安全(一)

    C/C++ 代码安全(一)

    规则1: 不通过链接创建通用字符串。 C11标准:如果匹配通用字符名称的字符序列由符号链接生成,将产生未定义行为。 C #define assign(uc1,uc2,val) uc1##uc2 = val void func(){ int u0401; assign(u04,01,4); printf("u0401 = %d\n",u0401); } int main() ...

    阅读全文
    作者:root | 分类:C, C/C++
  • How to make Shared Library and Static Library With GCC on Linux

    How to make Shared Library and Static Library  With GCC on Linux

    前言 今天做一个修改Glibc 源码的需求的时候,我想到了使用动态库的方式完成我的目的。但是我很久之前做过相关的东西,现在忘了,遂上百度,谷歌再次学习,正好总结下,以防后边忘记。 首先 我们的函数: cac_test.h double  test(double a,double b); cac_test.cpp double  test(double a,double b){ return (A+B)/2; ...

    阅读全文
    作者:root | 分类:C, C/C++
  • C++ 学习笔记 继承相关小结

    C++ 学习笔记 继承相关小结

    OOP: 面向对象的核心思想: 封装,多态,继承。 基类: 基类和普通的类没有什么太大的区别,其它类可以通过继承它,合理获得它的接口,数据等东西。不过有以下需要注意的一些地方。 析构函数请一定设置成虚函数,这样后边它有派生类后,派生类就包含了一个虚的析构函数,我们就可以根据自己的需要覆盖(重写)这个方法 ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • c++学习笔记之拷贝

    c++学习笔记之拷贝

    拷贝初始化 拷贝初始化发生的条件与情景: @使用“=”定义变量的时候 @将一个对象作为实参传递给一个非引用类型的行参 @从一个返回类型为非引用类型的函数返回一个对象 @从花括号列表初始化一个数组中的元素或一个聚合类中的成员。 拷贝初始化的限制 如果我们使用的初始化值要求通过一个explicit 的构造函数来进行类型转 ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • c++ 学习笔记之动态内存管理

    c++ 学习笔记之动态内存管理

    c++ 的动态内存管理是个大坑,寒假差点害死我。 动态内存与智能指针 智能指针是一个模板,使用的时候必须指定类型。 shared_ptr<string> pl; shared_ptr<list<int>> p2; 它的使用方式与普通指针类似。解引用一个智能指针返回它指向的对象 make_shared 函数 这是最安全的分配函数,属于标准库。此函数 ...

    阅读全文
    作者:root | 分类:C/C++, cpp