上篇《静态分析 C 程序函数调用关系图》 介绍了 CallGraph 静态分析 C 语言程序的函数调用,该篇继续分析源码,不过是分析 C 程序运行时的函数调用关系,所以谓之动态分析,主要讲 Gprof 以及 Valgrind 的 Callgrind,外加 Gprof2Dot。这里主要是分析应用空间,下篇将分析 Linux 内核空间的函数调用关系,相应的工具包括 Perf, Ftrace, FlameGraph。...
分类:
其他好文 时间:
2015-04-15 09:42:06
阅读次数:
192
题目大意空间最小球覆盖思路临滚粗前做点水题qwqCODE#define _CRT_SECURE_NO_WARNINGS#include
#include
#include
#include
#include
#define INF 1e15
#define EPS 1e-7
#define MAX 1...
分类:
其他好文 时间:
2015-04-15 09:41:18
阅读次数:
178
【项目1-深复制体验】
(1)阅读下面的程序,补足未完成的注释
#include
#include
using namespace std;
class A
{
private:
char *a;
public:
A(char *aa)
{
a = new char[strlen(aa)+1]; //(a)这样处理的意义在于...
分类:
其他好文 时间:
2015-04-15 09:39:45
阅读次数:
132
代码
#include
using namespace std;
class B
{
public:
B()
{
cout<<"default constructor"<<endl;
}
~B()
{
cout<<"destructed"<<endl;
}
B(int i):dat...
分类:
其他好文 时间:
2015-04-15 09:40:24
阅读次数:
133
代码
#include
using namespace std;
class example
{
public:
example()
{
cout<<"Default Constructing! "<<endl;
}
example(int n)
{
i=n;
cout<<"C...
分类:
其他好文 时间:
2015-04-15 09:40:13
阅读次数:
117
【项目1-深复制体验】(2)
(2)将注释(a)所在的那一行去掉,会出现什么现象?为什么?为什么a数据成员所占用的存储空间要在aa长度基础上加1?若指针a不是指向字符(即不作为字符串的地址),是否有必要加1?
去掉后:
因为没有为a开辟空间,所以a指针会乱指,导致程序出错。
因为aa字符串结束后需要+1的‘\0’表示字符串结束。
没必要,非字符串,开...
分类:
其他好文 时间:
2015-04-15 09:38:30
阅读次数:
106
Not allowed to load local resource: file:...
分类:
其他好文 时间:
2015-04-15 09:38:41
阅读次数:
295
抛体运动的类型: "很多子弹不仅垂直运动而且追随着水平的运动。那就,当他们向上移动或向下运动时也正在水平方向移动。弹体的运动 — — 横向和纵向运动的两个组成部分。 垂直运动: 在垂直运动,重力作用在物体上,并给予负加速度"-9.8 m/s²"(重心加速度)。这意味着物体的速度在每一秒减小-9.8 米/² 。自由落体的速度是 V = g * t。 如果我...
分类:
其他好文 时间:
2015-04-15 09:38:52
阅读次数:
169
代码
#include
using namespace std;
class AA
{
public:
AA(int i,int j)
{
A=i;
B=j;
cout<<"Constructor\n";
}
AA(AA &obj)
{
A=obj.A+1;
...
分类:
其他好文 时间:
2015-04-15 09:38:20
阅读次数:
109
#include
#include
using namespace std;
class A
{
private:
char *a;
public:
A(char *aa)
{
a = new char[strlen(aa)+1]; // strcpy(a, aa); // }
~A()
{
...
分类:
其他好文 时间:
2015-04-15 09:39:59
阅读次数:
100
前一篇写了HAProxy自己的LB和证书的使用,这篇主要是关于安全还有可靠性的。...
分类:
其他好文 时间:
2015-04-15 09:39:06
阅读次数:
134
设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不定)和number个职工的工资salary,要求输入职工工资并逐个输出。
提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能会由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小的空间存储数据。
class Salary
{
p...
分类:
其他好文 时间:
2015-04-15 09:36:16
阅读次数:
115
对random access memory的基本特点的总结:
①随机存取
所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带)。
②易失性
当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存...
分类:
其他好文 时间:
2015-04-15 09:39:00
阅读次数:
147
问题
(2)将注释(a)所在的那一行去掉,会出现什么现象?为什么?为什么a数据成员所占用的存储空间要在aa长度基础上加1?若指针a不是指向字符(即不作为字符串的地址),是否有必要加1?
提示错误,因为没有为a指针初始化地址,a将变为野指针。
字符串结束时需要用'\0'。
没有必要。
(3)为类A增加复制构造函数,用下面的main函数测试
int main()
{
...
分类:
其他好文 时间:
2015-04-15 09:38:56
阅读次数:
139
输入代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:sum123.cpp
* 作 者:林海云
* 完成日期:2015年4月15日
* 版 本 号:v2.0
*
* 问题描述:设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不...
分类:
其他好文 时间:
2015-04-15 09:38:24
阅读次数:
100
ESP是栈顶指针 Extended Stack Pointer
EBP是基址指针 Extend Base Pointer
ESP就是一直指向栈顶的指针,而EBP只是用于存取某时刻的栈顶指针,以方便对栈的操作
使用__stdcall的话,调用侧从右往左压栈函数参数,但不退栈,需要函数退栈
使用__cdecl的话,调用侧从右往左压栈函数参数,并且在调用后,调用侧主动执行退栈...
分类:
其他好文 时间:
2015-04-15 09:37:30
阅读次数:
153
一. 递归的慢究竟慢在哪
递归就是函数自己调用自己,函数每次调用的时候需要将以下内容存入递归栈:调用函数地址、形参、局部变量、返回值。所以如果递归调用了N次,那压栈操作要保存N
* 调用函数地址、N * 局部变量、N * 形参、N * 返回值。这势必是影响效率的。
二. 递归和循环的比较:
递归和循环是两种不同的解决问题的思路,我们不能片面的说循环的效率一定会比递归高,下面我们做...
分类:
其他好文 时间:
2015-04-15 09:37:41
阅读次数:
120