编程
文章平均质量分 88
上官宏竹
这个作者很懒,什么都没留下…
展开
-
笔记——【C和指针】
1、函数指针数组 P264 double add1(double, double); double add2(double, double); double add3(double, double); double add4(double, double); double (* fun[])(double, double) = //fu原创 2015-06-18 11:24:00 · 408 阅读 · 0 评论 -
C/C++编程规范
1、注意:strncpy、strncat等带n版本的字符串操作函数在源字符串长度超出n标识的长度时,会将包括’\0’结束符在内的超长字符串截断,导致’\0’结束符丢失。这时需要手动为目标字符串设置’\0’结束符。 char dst[11]; // 【注意】最好每次定义时初始化为0: dst[11] = {0}; char src[] = "0123456789"; ch......原创 2016-04-16 16:17:24 · 19974 阅读 · 0 评论 -
C/C++编译错误(原因&解决)
C++编译错误虚函数必须定义和实现【错误code】st9.cpp:(.text._ZN1AC2Ev[_ZN1AC5Ev]+0x8): undefined reference to `vtable for A'/tmp/cc4NCjpc.o:(.rodata._ZTV1B[_ZTV1B]+0x8): undefined reference to `A::f()'/tmp/cc4NCjpc.o:(.原创 2015-09-09 16:33:24 · 811 阅读 · 0 评论 -
C编程记录
字节对齐 #pragma pack(n)和attribute((aligned(m)))的区别:前者告诉编译器结构体或类内部的成员变量相对于第一个变量的地址的偏移量的对齐方式,缺省情况下,编译器按照自然边界对齐,当变量所需的自然对齐边界比n大 时,按照n对齐,否则按照自然边界对齐; 后者告诉编译器一个结构体或者类或者联合或者一个类型的变量(对象)分配地址空间时的地址对齐方式。也就是所,如果将att原创 2016-01-08 11:03:52 · 419 阅读 · 0 评论 -
编程疑难点
1、事件、消息机制2、回调、钩子函数3、二级及多级指针下面的博文对于理解参数的传递和二级指针有帮助 http://www.cnblogs.com/chinacloud/archive/2011/09/02/2163377.html 自己补充一部分:void change_val(char *p) { printf("fun: address of p : 0x%x\n",p);char n原创 2015-10-11 17:08:58 · 506 阅读 · 0 评论 -
面试——数据结构
1、指针内存错误问题(有关链式存储)在此之前说一个当时写此实现的一个指针内存错误。 一个指针,不管定义成什么类型,当要去取它的内存模型中的某个东西时,这个指针所指向的内存必须存在,也就是之前给其所指向的内存分配了空间。 当定义: int *p; *p = 5; //执行这样的操作是错误的,这是简单的,//然而复杂的是如下的,定义一个结构体指针//节点元素typedef str原创 2015-10-11 16:29:14 · 767 阅读 · 0 评论 -
Unix环境高级编程
共享内存&文件映射1、文件映射、内存映射(存储映射I/O)P391 【定义】 存储映射I/O使一个磁盘文件与存储空间中的一个缓存相映射。于是当从缓存中取数据,就相当于读文件中的相应字节。与其类似,将数据存入缓存,则相应字节就自动地写入文件。这样,就可以在不使用read和write的情况下执行I/O。 【作用】 1. 直接用内存映射文件来访问磁盘上的数据文件,无需再进行文件的I/0操作. 2原创 2015-09-17 10:51:30 · 789 阅读 · 0 评论 -
C库函数
内存处理calloc函数原型:void *calloc(size_ t n, size_t size); 功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。 实现:http://blog.csdn.net/hzhzh007/article/details/6424638realloc函数原型:extern void原创 2015-11-07 21:16:40 · 589 阅读 · 0 评论 -
多进程并发编程
exit()函数用于终止调用进程。关闭所有子进程打开的描述符,向父进程发送SIGCHLD信号,并返回状态。 父进程可通过调用wait()或waitpid()函数获得子进程的终止信息。{ if(listen(listenfd,BACKLOG)== -1){ perror("listen() error\n"); exit(1); } len=s原创 2015-09-17 23:41:19 · 530 阅读 · 0 评论 -
检测内存泄露、多线程gdb调试(core)、内核态用户态的通信
快速检测内存泄露通过包括 crtdbg.h,将 malloc 和 free 函数映射到它们的调试版本,即 _malloc_dbg 和 _free_dbg,这两个函数将跟踪内存分配和释放。此映射只在调试版本(在其中定义了_DEBUG)中发生。发布版本使用普通的 malloc 和 free 函数。在程序退出前调用:_CrtDumpMemoryLeaks();原创 2015-09-13 22:53:59 · 6699 阅读 · 1 评论 -
ACM题目
1、矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a2、单调递增最长子序列时间限制:3000 ms | 内存限制:65535 KB 难度:4描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf原创 2015-09-12 17:12:30 · 811 阅读 · 0 评论 -
算法——动态规划(分治递归)
前言本文翻译自TopCoder上的一篇文章: Dynamic Programming: From novice to advanced ,并非严格逐字逐句翻译,其中加入了自己的一些理解。水平有限,还望指摘。我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你的能力与技巧,我会试着帮助你理解如何使用DP来解题。 这篇文章是基于实例展开来讲的,因为干巴巴的理论实在转载 2015-09-11 09:48:02 · 1152 阅读 · 0 评论 -
nginx机制详解
nginx架构众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。1、nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使ngin原创 2015-09-08 21:52:48 · 879 阅读 · 0 评论 -
多进程、多线程
线程池线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四个基本组原创 2015-08-26 21:56:36 · 874 阅读 · 0 评论 -
算法——回溯法(子集、全排列、皇后问题)
参考:http://www.cnblogs.com/wuyuegb2312/p/3273337.html#intro定义回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。 回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 回溯算法解决问题的一般步骤为: 1、定义一个解空间,它包含问题的解。 2、利用适于搜索的方法组织解空间。 3、利原创 2015-07-27 11:28:59 · 5274 阅读 · 0 评论 -
算法——字符串、序列问题
1、求一个字符串中连续出现次数最多的子串《程序员面试宝典》 P237 字符串中连续出现次数最多的子串,例如字符串“abababc”,最多连续出现的为ab,连续出现三次。 【算法思路】 首先 获得后缀数组 例如:abcbcbcabc的后缀数组为: abcbcbcabc bcbcbcabc cbcbcabc bcbcabc cbcabc原创 2015-07-06 10:03:25 · 754 阅读 · 0 评论 -
C/C++易错问题分析
1、若要通过函数参数传出值A,则需要传入A的指针形式传给函数形参的实参是作为拷贝传入,在函数体内改变作为拷贝的实参2是不会影响到传入的实参1的。 ex:void get_addr(int *p){ p = 0xEEFF;}void main(){ int *t = NULL; get_addr(t);} 应该改为如下的:void get_addr(int **p)原创 2016-04-18 19:22:35 · 477 阅读 · 0 评论