C/C++
文章平均质量分 74
烽火前秦路
厚积薄发,知识改变命运!
展开
-
动态申请二维数组并释放
1 C语言版//申请一个m*n的二维数组,并释放数组#define _CRT_SECURE_NO_WARNINGS#include#includeint main(){ int m, n; scanf("%d %d", &m, &n); int **arr = NULL; arr = (int **)malloc(m*(sizeof(int *)));//动态申请二维原创 2016-08-25 11:03:32 · 691 阅读 · 0 评论 -
控制内存分配----重载new和delete & 定位new表达式
定位new表达式, 重载new和delete, 控制内存分配原创 2016-05-05 11:17:19 · 3087 阅读 · 0 评论 -
allocator类
new的相关知识,请参考http://blog.csdn.net/qianqin_2014/article/details/51320775>原创 2016-05-05 15:55:36 · 489 阅读 · 0 评论 -
noexcept异常说明及其使用
noexcept异常说明原创 2016-05-05 11:49:27 · 11403 阅读 · 2 评论 -
巩固C语言(十三)----文件重定向 & 静态库和动态库的使用 &sscanf函数
文件重定向,动态库与静态库,sscanf函数的强大功能原创 2016-04-20 15:57:45 · 1796 阅读 · 0 评论 -
巩固C语言(十二)----文件加解密
C语言简单实现文件的加解密!原创 2016-04-19 23:08:23 · 882 阅读 · 0 评论 -
C++转换构造函数和隐式转换函数
今天是第一次听到C++还有个转换构造函数,之前经常见到默认构造函数、拷贝构造函数、析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,C++的确是够博大精深的,再次叹服!其实我们已经在C/C++中见到过多次标准类型数据间的转换方式了,这种形式用于在程序中将一种指定的数据转换成另一指定的类型,也即是强制转换,比如:int a = int(1.23),其作用是将1.23转换为整转载 2016-05-04 17:20:47 · 7338 阅读 · 2 评论 -
巩固C语言(十一)----文件的数据处理
一 单线程文件处理,边读取边处理#define _CRT_SECURE_NO_WARNINGS#include#include#include#includevoid main(){ clock_t start, finish; long duration; FILE *fp = fopen("dangdangwang.txt", "rb"); if (!fp) {原创 2016-04-19 14:54:41 · 866 阅读 · 0 评论 -
巩固C语言(十)----指针数组 & 函数指针和指针函数
1 利用指针数组实现多个函数劫持技术#include#include#include#include"detours.h"#pragma comment(lib, "detours.lib")int newAdd(int a, int b) //static文件只能限制在本文件使用{ printf("+++++++\n"); return a + b;}in原创 2016-04-18 21:28:50 · 372 阅读 · 0 评论 -
巩固C语言(九)----静态库文件的生成和使用、劫持技术
1 静态文件的生成新建工程MyLib添加头文件mylib.hvoid msg(); //在头文件里边只需要声明函数即可添加源文件mylib.c#includevoid msg() //只需对头文件中的声明进行定义即可{ MessageBoxA(0, "我的静态库文件", "My Lib", 0);}打开项目属性----原创 2016-04-18 10:15:15 · 860 阅读 · 0 评论 -
巩固C语言(八)----进程和线程的区别和练习 & 线程编程
多线程编程原创 2016-04-17 19:32:49 · 3396 阅读 · 0 评论 -
C++异常
一、什么是异常处理一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却无法检查它们转载 2016-05-05 20:01:28 · 623 阅读 · 0 评论 -
100条经典C语言笔试题目(上)
1. 请填写 bool , float, 指针变量 与“零值”比较的 if 语句。1.1 请写出 bool flag 与“零值”比较的 if 语句:if(flag);if(!flag)1.2 请写出 float x 与“零值”比较的 if 语句:if((x=)0.000001);1.3 请写出 char *p 与“零值”比较的 if 语句if(p != N原创 2016-04-21 15:41:22 · 10247 阅读 · 2 评论 -
100条经典C语言笔试题目(下)----待补充
51、对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?52、 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)53、有一分数序列:1/2,1/4,1/6,1/8„„,用函数递归调用的方法,求此 数列前 20 项的和54、在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?55、请简原创 2016-04-21 19:40:09 · 878 阅读 · 0 评论 -
Linux中fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来转载 2016-06-19 15:26:26 · 401 阅读 · 0 评论 -
纯虚函数 & 实例化
1 纯虚函数的表示方法class Base{public: virtual void func() = 0;};注意:纯虚函数不可以实例化,但是可以用其派生类实例化!#includeusing namespace std;class Base{public: virtual void func() = 0;};class Derived :p原创 2016-07-23 22:48:14 · 5971 阅读 · 0 评论 -
字符串分割函数
//字符串分割函数std::vector split(std::string str,std::string pattern){ std::string::size_type pos; std::vector result; str+=pattern;//扩展字符串以方便操作 int size=str.size(); for(int i=0; i<size; i++)原创 2016-07-11 17:26:08 · 388 阅读 · 0 评论 -
清除scanf中的缓存
void safe_flush(FILE *fp){ int ch; while ((ch = fgetc(fp)) != EOF && ch != '\n');}直接调用safe_flush(stdin)即可!!!原创 2016-07-10 23:59:14 · 1618 阅读 · 0 评论 -
模板类的定义和声明为何要写在一起
转自前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事转载 2016-06-04 23:45:17 · 3339 阅读 · 0 评论 -
具有虚函数的类的大小 & VS2010命令行查看虚函数表和类内存布局
VS2010命令行查看虚函数表和类内存布局以下内容引自VS2010命令行下查看虚函数表和类内存布局——《深度探索C++对象模型》读书札记系列 在学习多重继承下的Virtual functions时,需要分析派生类的虚函数表(vtable),但是在网上找了好几种Hack vtable方法,结果都不尽如人意。没想到MS Compiler(以VS2原创 2016-05-20 19:21:26 · 1350 阅读 · 1 评论 -
空基类优化EBO之深度探索
引自空基类优化EBO之深度探索继承情景 我们知道一个空的类,也就是其内部没有非静态数据成员,没有虚指针(包括指向虚函数表和虚基类子对象的指针),它的大小通常为1,当然在某些对齐要求严格系统上可能是另一个数(通常是4),如果空类被继承,那么派生类的大小会怎么样呢?一个支持C++标准和EBO的编译器对此会进行空基类的优化,也就是不给空的基类子对象分配空间,换句话说,空基转载 2016-05-20 21:21:03 · 589 阅读 · 0 评论 -
AVL树
AVL树是带有平衡条件的二叉查找树。一颗AVL树是其每个结点的左子树和右子树的高度最多差1的二叉查找树(空树的高度定义为-1)。在插入新节点以后,只有那些从插入点到根节点的路径上的结点的平衡有可能会被改变,因为只有这些结点的子树可能发生改变。把必须重新平衡的结点叫做a,由于任意结点最多有两个儿子,因此高度不平衡时,a点的两颗子树的高度差2。单旋转原创 2016-05-18 16:26:04 · 485 阅读 · 0 评论 -
华为研发工程师编程题(2)----明明的随机数
试题:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArra原创 2016-04-28 23:17:05 · 21024 阅读 · 2 评论 -
理解typename的两个含义
typename深度理解转载 2016-05-18 12:17:34 · 365 阅读 · 0 评论 -
巩固C语言(七)----递归的深度学习及应用 & 字符串和整数之间的相互转化
递归的深度学习与应用原创 2016-04-17 14:31:36 · 585 阅读 · 0 评论 -
巩固C语言(六)----数字倒置转换、内存检索、移动窗口、HWND和CWnd、CodeBlocks环境配置
数字倒置转换、内存检索、移动窗口、HWND和CWnd、CodeBlocks环境配置原创 2016-04-16 23:23:53 · 833 阅读 · 0 评论 -
Window系统下CMD命令大全(二)
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本)1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr.msc:证书管理实用程序 4. charmap:启动字符映射表 5. chkdsk.exe:Chkdsk磁盘检查(管理员身份运行命令提示符) 6. cleanmgr: 打开磁盘清理工具 7. cli原创 2016-04-12 19:42:27 · 790 阅读 · 0 评论 -
动态内存和智能指针及其实现方法
DebugDelete.h#ifndef DEBUGDELETE_H#define DEBUGDELETE_H#include /*** @brief The DebugDelete class is a deleter functor using delete*/class DebugDelete{public: DebugDelete(std::ostream原创 2016-04-12 17:46:53 · 330 阅读 · 0 评论 -
容器Vector模拟
头文件vec.h#ifndef VEC_H#define VEC_H#pragma warning(disable:4996)#include /*** @brief a vector like class*/templateclass Vec{public: Vec() :element(nullptr), first_free(nullptr), cap(n原创 2016-04-12 15:22:26 · 314 阅读 · 0 评论 -
258. Add Digits
LeetCode原创 2016-04-02 21:06:46 · 264 阅读 · 0 评论 -
将数字转化为字符串
函数原型errno_t _itoa_s(int value,char *buffer,size_t sizeInCharacters,int radix);errno_t _i64toa_s(__int64 value,char *buffer,size_t sizeInCharacters,int radix);errno_t _ui6原创 2016-03-20 15:10:31 · 1876 阅读 · 0 评论 -
华为2014年校园招聘机试题(2)
试题二:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1、操作数为正整数,不需要考虑计算结果溢出的情况。2、若输入算式格式错误,输出结果为“0”。要求实现函数:void arithmetic(const char *pInput原创 2016-03-20 13:58:55 · 473 阅读 · 0 评论 -
格式化输出字符串
printf格式化字符控制转载 2016-03-19 11:00:22 · 1823 阅读 · 0 评论 -
华为2014年校园招聘机试题(1)
华为2014年校园招聘机试题原创 2016-03-19 09:57:05 · 589 阅读 · 0 评论 -
华为2015年校园招聘机试题(2)
2015年华为校园招聘机试题原创 2016-03-18 16:42:48 · 830 阅读 · 0 评论 -
华为校园招聘机试题(1)
华为校园招聘机试题转载 2016-03-18 15:33:36 · 543 阅读 · 0 评论 -
C语言编程步骤----详解
转自C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的转载 2016-04-12 21:45:00 · 5359 阅读 · 0 评论 -
巩固C语言(一)
#define _CRT_SECURE_NO_WARNINGS //关闭安全检查#include#include#include#define X 10 //内部外部都不能修改const int num = 10; //伪常量,内部不能修改,但可以通过修改内存来修改void main1(){ system("notepad"); //打开记事本,只有这条命令结束原创 2016-04-12 23:56:37 · 440 阅读 · 0 评论 -
原码、反码、补码----详解
引自本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进转载 2016-04-10 17:25:02 · 383 阅读 · 0 评论 -
巩固C语言(五)----获取CMD输出的字符串 & 字符串的拷贝、查找、长度 & 实例之调戏QQ
1 获取CMD中字符串的输出:#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid getCMD(char *in, char *out){ char buffer[128] = { 0 }; FILE *pipe = _popen(in, "r"); //获取命令行的输入,并执行,pipe相当于一个管道原创 2016-04-15 23:58:20 · 1644 阅读 · 0 评论