自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 用C++这里写自编写一个程序,初始化一个double类型的数组,然后把该数组的内容 复制至3个其他数组中<在main()中声明这4个数组>

使用带数组表示法的 函数进行第1份复制。使用带指针表示法和指针递增的函数进行第2份复制。把目标数组名、源数组名和待复制的元素个数作为前两个函数的参数。第3个函数以目标数组名、源数组名和指向源数组最后一个元素后面的元素的指 针。

2023-10-14 10:31:48 312

原创 C程序内存泄漏检测工具

VisualC++ debugger 和 CRT 库 VC++2010版的IDE操作如下第一步: 包含以下头文件#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>第二步: 接管 new 操作符#ifdef _DEBUG#ifndef DBG_NEW#define DBG_NEW new ( _NORMAL_BLOCK , FILE ,LINE)#define new DBG_NEW#end

2020-07-06 10:24:34 424

原创 地震监测系统(完结版)

项目实现:1.问题描述:使用数据文件中的一组地震检波器测量值确定可能的地震事件的位置。2. 输入输出描述:(1)程序的输入是名为seismic.dat的数据文件和用于计算短时间能量和长时间能量的取样值的数目。输出是给出关于潜在的地震事件次数的报告。(2)seismic.dat 的结构是这样的,第一行包含两个值: 地震检波器能量值的数目和时间间隔,从第二行开始就是能量值的数据,以空格分开。(3)短时间窗口和长时间窗口的值可以由键盘读入。(4)判定地震事件给定的阀值是 1.5。seismic.d

2020-07-02 09:02:52 919

原创 C++内存常见错误总结

1. 申请的内存多次释放2. 内存泄漏3. 释放的内存不是申请时的地址4. 释放空指针5. 释放一个内存块,但继续引用其中的内容6. 越界访问示例代码如下:#include <stdio.h>#include <iostream>#include <Windows.h>using namespace std;int main(void) { int * p = new int[20]; p[0] = 0; char *p1 = NULL;

2020-06-24 16:47:29 210

原创 C/C++语言中的变量的4种存储类型

所有的数据都有两种类型(1)数据类型: : 如 int,float 等。(2)存储类型: : 总共有四种存储类型的变量,分别为自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register)。1、o auto - - 函数中所有的非静态局部变量。2、 register - - 一般经常被使用的的变量(如某一变量需要计算几千次)可以设置成寄存器变量register 变量会被存储在寄存器中,计算速度远快于存在内存中的非 register 变量。3、 stati

2020-06-23 21:37:16 2437

原创 微信史上最短的一行功能代码“拍一拍”

使用了 Lambda 语法的 C++ 代码:head.onDoubleClick([&](e){ msgSender.send({.msgType= MSG_TYPE_SYSTEM_TEXT, .contentTemplate = fmt("%s拍了拍%s" , app.getCurrentUser(), e.target)}); });这行代码主要是在「拍了拍」前后传递你和好友的微信昵称参数,发送给相应接口后输出为一条小灰色条消息。至于双击头像的抖动效果并没有包括在内,这个功能其实在早先的

2020-06-22 22:39:34 491

原创 C++程序员的恶梦-内存泄漏

内存泄漏(Memory Leak) - 是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏代码如下:#include <stdlib.h>#include <iostream>#include <Windows.h>using namespace std;void A_live() { int * p = new int[1024]; //一直使用 p[0] = 0;

2020-06-22 21:24:53 263

原创 动态内存的分配、使用、释放

new 和 delete 基本语法1)在软件项目开发过程中,我们经常需要动态地分配和撤销内存空间,特别是数据结构中结点的插入与删除。在 C 语言中是利用库函数 malloc 和 free 来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符 new 和 delete 来取代 malloc 和 free 函数。(注意: new 和 delete 是运算符,不是函数,因此执行效率高。)2)虽然为了与 C 语言兼容,C++仍保留 malloc 和 free 函数,但建议用户不用 malloc 和 f

2020-06-22 18:53:34 398

原创 C语言为什么要使用动态内存

1.按需分配,根据需要分配内存,不浪费。代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <Windows.h>int main(void) { int farmer[10] = { 22, 24, 26, 28, 30, 20, 33, 35, 21, 32 }; int num = 0; int *salary = NULL; printf("

2020-06-21 12:34:30 391

原创 C程序内存分布

1. C程序的内存分区1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量值等。2、堆区(heap):一般由程序员分配释放,随叫随到,挥之即走。3、全局/静态区(static):全局变量和静态变量的存储是放在一起的,在程序编译时分配。4、文字常量区:存放常量字符串。5、程序代码区:存放函数体(包括类的成员函数、全局函数)的二进制代码。具体代码表示如下:#include <stdio.h>#include <stdlib.h>#include &

2020-06-19 21:29:16 290

原创 地震监测系统(一)

一、项目需求地震监测系统主要是利用地震检波器收集到的地壳运动信息,从而预测和确定地震的震中以及强度。数字地震检波器MEMS:MEMS的由来:MEMS技术是从早期的汽车轮胎压力传感器到为开发气囊而进行的汽车撞毁试验以及航空电子等大冲击量检测设备而逐渐发展而来的。预测方法:地震检波器每隔固定的时间间隔采样一次预测地震的能量数据,并保存到文件中,地震监测系统会从文件中读取相应的能量数据,如果这个比例高于给定的阈值,那么在这个事件点上极有可能发生地震。取数据样值方法:无论短/长时间内的取数据值都是

2020-06-18 21:11:54 1439

原创 指针的定义

指针是什么?答:在C和C++语言中,将地址形象地称为“指针”。一个专门用来存放另一个变量的地址的变量(即指针),则称它为“指针变量”。代码如下:#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main(void) { int Pointer; char character; //定义了一个指针 //指针本身也是一个变量 //名称是a, 它是一个指针,可以指向一个整数

2020-06-17 22:59:56 2793

原创 实现一个函数,函数完成如下功能

实现一个函数,函数完成如下功能:1.函数的输入为一个数组,数组的成员个数不定(即:可能为 0 个,也可能为多个)。2.函数找到成员的最大元素和最小元素,并能让函数的调用者知道最大元素和最小元素是哪一个。#include <stdio.h>#include <iostream>#include <Windows.h>using namespace std;bool find_max_min(int a[], int len, int* max, int*

2020-06-15 16:57:12 1691

原创 要求使用指针实现数组成员由小到大的顺序排列第二版

有一个整形数组, a[3] = {7,2,5}, 要求使用指针实现数组成员由小到大的顺序排列,即结果为:a[3] = {2,5,7};第二版:#include <stdio.h>#include <iostream>#include <Windows.h>using namespace std;void order(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp;}int main(void

2020-06-14 21:10:18 373

原创 实现含有中文字符的字符串逆转

实现含有中文字符的字符串逆转,如: “我是小萌新” 转换成“新萌小是我”第一版只支持中文:#include <iostream>#include <Windows.h>#include <string>using namespace std;void ni_zeng_str(string &str, int len) { int lenth = len; for (int i = 0; i < lenth / 2; i += 2, le

2020-06-14 18:33:11 272

原创 二级指针的用途

普通指针可以将变量通过参数“带入”函数内部,但没办法将内部变量“带出”函数二级指针可以不但可以将变量通过参数函数内部,也可以将函数内部变量 “带出”到函数外部。代码:#include <stdio.h>#include <stdlib.h>#include <Windows.h>void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp;}void boy_home(int **.

2020-06-09 08:56:45 2880

原创 C语言指针与指针之间的加减运算

知识点:(1)指针和指针可以做减法操作,但不适合做加法运算;(2)指针和指针做减法适用的场合:两个指针都指向同一个数组, 相减结果为两个指针之间的元素数目,而不是两个指针之间相差的字节数。比如:int int_array[4] = {12, 34, 56, 78};int *p_int1 = &int_array[0];int *p_int2 = &int_array[3];p_int2 - p_int1 的结果为 3,即是两个之间之间的元素数目为 3 个。如果两个指针不是指向

2020-06-05 10:15:14 9851

原创 C语言编写一个程序,初始化一个 double 类型的数组,然后把该数组的内容 拷贝至 3 个其他数组中(在 main()中声明这 4 个数组)。

编写一个程序,初始化一个 double 类型的数组,然后把该数组的内容 拷贝至 3 个其他数组中(在 main()中声明这 4 个数组)。使用带数组表示法的 函数进行第 1 份拷贝。使用带指针表示法和指针递增的函数进行第 2 份拷贝。 把目标数组名、源数组名和待拷贝的元素个数作为前两个函数的参数。第 3 个函数以目标数组名、源数组名和指向源数组最后一个元素后面的元素的指 针。也就是说,给定以下声明,则函数调用如下所示:double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5}

2020-06-05 10:02:40 4449

原创 C++使用指针实现数组成员由小到大的顺序排列

有一个整形数组, a[3] = {7,2,5}, 要求使用指针实现数组成员由小到大的顺序排列,即结果为:a[3] = {2,5,7};#include <iostream>#include <Windows.h>using namespace std;void sort(int *a, int len) { if (a == NULL) { cout << "a is NULL" << endl; system("pause"); e

2020-06-05 09:52:38 1770

原创 实现一个函数,使用指针连接两个字符串

函数输入: 两个源字符串的指针,目的字符串的指针。#include <stdio.h>#include <stdlib.h>#include <Windows.h>using namespace std;char *str(char *p1, char *p2){ char *p = p1; while (*p1++); p1--; while (*p1++ = *p2++); return p; }int main(void) {

2020-06-02 10:51:50 4327

原创 我们不一样之数组和指针的差别

数组:数组是用于储存多个相同类型数据的集合。指针:指针是一个变量,但是它和普通变量不一样,它存放的是其它变量在内存中的地址。1. 赋值数组:只能一个一个元素的赋值或拷贝指针:指针变量可以相互赋值2. 表示范围数组有效范围就是其空间的范围,数组名使用下表引用元素,不能指向别的数组。指针可以指向任何地址,但是不能随意访问,必须依附在变量有效范围之内。3. sizeof数组:数组所占存储空间的内存:sizeof(数组名)数组的大小:sizeof(数组名)/sizeof(数据类型)指针:在

2020-06-02 09:18:19 173

原创 void 类型指针

void => 空类型void* => 空类型指针,只存储地址的值,丢失类型,无法访问,要访问其值,我们必须对这个指针做出正确的类型转换,然后再间接引用指针。所有其它类型的指针都可以隐式自动转换成 void 类型指针,反之需要强制转换。#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main(void) { int arr[] = { 1, 2, 3, 4, 5 };

2020-06-02 09:08:07 222

原创 C++特殊的“别名”引用

函数

2020-05-27 11:04:28 441

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除