[初]对于C++内存模型的一个测试小程序

一个完整的吃内存程序 一个完整的吃内存程序作者:苏显斌日期:2006年5月24日这个程序是本人在公司测试自己编写的安装程序其间编写的一个小程序,主要目的是用来测试本机在不同剩余内存的情况下,安装程序执行的情况,现在把这个工具放上来给大家共享,希望有用得到的,同时也希望各位在阅读代码的过程中,发现有设计、编码等问题,不吝给予指出。 一、             界面设计 二、          阅读详情

#include <iostream>
#include <cstdio>

using namespace std;

//对于C++内存模型的一个测试小程序
//author:snail
//date:2007-03-02


//*

class MemoryKiller{
public:
    MemoryKiller(){};
private:
    int bigMemory[1024*1024]; 
};

//全局区(静态区)(static):全局变量和静态变量的存储是放在一块的
//下面这行需要800的内存,而且没有出错,说明gcc编译器应该没有对静态区
//做大小限制~~任意大小:)
int Global_Memory_killer[200000000];

int main(){
    // 在这里,我又向系统要了800M内存!
    int* p = new int[200000000];
   
    //堆区(heap):gcc编译器对堆区的大小也没有做任何限制。
    MemoryKiller *mk = new MemoryKiller();
    cout << "create MemoryKiller on the heap successful!" << endl;

    //MemoryKiller k是这样建立在栈上还是建立在堆上?
    //这个问题困扰了我好久,结果程序跑起来,结果马上就出现了(挂了。。)
    //最终还是验证对象是建立在堆栈上的~~~
    //MemoryKiller k;
   
    cout << "create MemoryKiller on the stack successful!" << endl;
   
    //在这里我又向系统要800内存,不过这次可能就没这么幸运了!
    //这时候系统对我说这么多了,不过系统有2种表达方式,一种
    //丢出异常,另一种丢个0给我,因为我在申请空间的时候明确
    //告诉系统不要丢异常,就是(nothrow)这个东西,明确说明我要0.
    //所以系统返回个0给我,真听话啊!
    if(int *q = new(nothrow) int[200000000]){
        cout << "success!";
    }else{
        cout << "lost!";
    }  
   
    system("pause");
}

//*/
 
 

C++小程序开发(1)--加法测试题 加法测试题程序                        ----C++小程序开发(1) 阅读详情

相关推荐

Cppfront与Cpp2:探索下一代C++语法,提升代码安全性与简洁性

在C++编程中,语法安全性和代码简洁性一直是开发者关注的核心议题。传统C++由于历史包袱,存在未初始化变量、空指针解引用等常见隐患,增加了代码维护的复杂性和错误风险。通过引入更现代的语言设计理念,如默认安全初始化、非空指针类型和统一函数声明语法,可以从根本上消除这些错误源头,提升代码的可靠性和可读性。这些改进不仅符合现代软件工程对安全性和可维护性的要求,也为大型项目开发和团队协作提供了更好的基础。Cppfront作为实验性编译器前端,正是这一理念的实践工具,它通过Cpp2语法探索了如何在不破坏现有生态的前提

weixin_30522095的博客 466

用C++写一个简单的表白小程序

先来看一下所达到效果为: 输入no系统会一直提醒你再试一次;输入yes会显示出一颗会变色的心和“爱你,么么哒”的字样,在VC2010学习版中测试如下图: 运行结果: 假如输入no: 当继续输入no: 系统会一直询问请求再选择一次,直到选择yes 当输入yes: 系统会自动清空前面的no选项而出现一颗会变色的心和爱你么么哒字样。 代码实现: 利用下述代码实现用户选择no而一直在while...

机智的博客 1万+

【超详细】初中高级软件测试工程师 都需要掌握哪些测试技能

一、初级测试工程师 这里说的测试工程师,是主攻软件的“测试”领域。也就是专业对接和负责软件的BUG查找、测试业务的执行、测试用例设计、测试计划的编写、测试报告生成等等。这类测试工程师需要掌握的技能如下: >> 下载300G软测学习资料包【视频教程+PPT+课件+项目源码】 ① 软件测试的整理测试流程和概念,熟练软件测试的用例设计和编写; ② 熟练掌握几种常见的去缺陷管理工具(禅道、SVN、Testhub、Jira等),熟悉缺陷的定义标准和系统化的测试计划编写等; ③ 掌握Web自动化测试

测试猿课堂-分享软件测试技术知识和专业的软件测试职业进阶转行指导! 8064

利用C++开发一个迷你的英文单词录入和测试小程序-源码

备注:enable_if 有更优秀的concept C++ 20替代品,C++11 里面提到的any,variant,再C++17 已经被纳入了标准库。这里完全可以抛弃rapidjson ,直接用std::vector<std::vector<std::any>>> 来通吃sql query的任何结果。首先创建一个question的类,来表现测试题目,有title,有正确的答案,有候选集,也就是4个带答案的选项。接上一篇,有了数据库的查询,再把小测试的功能给补足,小程序的结构就出来了。

lvronglee的专栏 422

C++超市小程序实战:掌握面向对象编程

C++作为一门历史悠久的编程语言,由Bjarne Stroustrup于1980年代初期在贝尔实验室开发。它是在C语言的基础上引入了面向对象的编程特性发展而来的。C++支持过程化编程、面向对象编程和泛型编程,这使得它成为众多编程语言中的一个强有力的竞争者。由于其执行效率高、可扩展性强等特点,C++广泛应用于系统/应用软件开发、游戏开发、实时物理模拟、高性能服务器和客户端开发等领域。在C++中,类(Class)是构造对象的蓝图或者模板。

weixin_30923011的博客 1006

Isaac Sim 使用经验(配置要求,云服务器)

Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。

weixin_44211433的博客 4587

【小程序】高校微信小程序应用大赛测试题

报名地址https://developers.weixin.qq.com/competition/index测试题目答案不保证对。。。但是可以通过测试 1. 以下那种小程序的内容是符合微信运营规范的? AD A. 星座运势小程序 B. 虚假红包小程序 C. 营销广告小程序 D. 查询天气小程序 2. 关于微信小程序的名称规范,下面的哪些说法是正确的?(多选) ABD A. 不得含有政治敏感、色情、...

壹小崔的博客 1万+

手持式激光测距仪全套方案

激光测距全套方案,包括原理图、源代码、PCB、BOM、光学部分资料,结构、特殊元件数据手册及供应商联系方式,提供调试技术文档。全套方案已成功打板验证,实现0.05~50m测量范围,精度在+/—1.5mm,激光波长635~650nm,功率《1mW。方案预留了TTL串口、RS485接口,可通过串口助手看到测量数据,可自行DIY或者商业开发。无论是电路小白,还是技术大拿,都能通过方案资料成功做出一套激光测距仪。

Laser01的博客 2055

实现一个轻量级 C++ 单元测试框架

📌 如何实现一个轻量级 C++ 单元测试框架——MiniTest 在 C++ 项目开发中,单元测试 是保证代码质量的重要手段。尽管 Google Test 和 Boost.Test 是流行的测试框架,但它们较为复杂,适用于大型项目。

伤心的辣条 748

Comsol 弧形声学换能器声聚焦仿真

1. 弧度和曲率半径:弧形声学换能器的形状和曲率半径对声聚焦效果有重要影响。通常,较小的曲率半径和较大的弧度可以实现更强的声聚焦效果。弧形声学换能器声聚焦是指将声波能量集中在弧形声学换能器的特定区域内,以实现更强的声场强度和分辨率。4. 数值仿真和优化:使用声学仿真软件进行数值仿真可以帮助设计和优化弧形声学换能器的声聚焦效果。通过调整几何参数、材料特性和激励信号等参数,可以模拟和优化声聚焦效果。2. 激励信号:通过调整激励信号的频率和幅值,可以实现声波在弧形声学换能器中的聚焦效果。

声学黑洞仿真工作室 1616

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(下)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2298

C++ 线程池小程序

C++ 线程池小程序 文件列表 mythreadpoll.h mythreadpoll.cpp 源码 mythreadpoll.h #pragma once #include <functional> #include <mutex> #include <vector> #include <deque> #include <atomic>...

qq_25584211的博客 419

OpenCV实战(24)——相机姿态估计

如果物体的 3D 结构是已知的,那么就可以预测物体如何投影到相机的传感器上,图像形成的过程由投影方程描述。当方程的大部分项已知时,就可以通过观察一些图像来推断其他元素 (2D 或 3D) 的值。相机姿态估计就是通过几个已知坐标的特征点,以及这些点在照片中的成像位置,求解出相机位于坐标系内的坐标与旋转角度。在本节中,我们将研究观察已知 3D 结构时的相机姿态估计问题。

盼小辉丶的博客 2万+

利用C++开发一个迷你的英文单词录入和测试小程序

C++ 可变参数真的很强大状态机模式,好像让程序变的更优雅一点了,至少跟过程程序设计相比。

lvronglee的专栏 446

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

灵境引路人 3227

一个测试反应力的小程序

测试反应力的小程序

m0_73301285的博客 886

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

C/C++转WebAssembly及微信小程序调用

C/C++转WebAssembly及微信小程序调用

qq_29517595的博客 4797

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

基于JAVA+SpringBoot+Vue+uniApp小程序的心理健康测试平台

该系统由三个核心角色组成:管理员、心理医生和用户。系统采用网页和小程序的混合形式来布局整体结构。管理员的主要职责是管理心理医生和用户的账户。心理医生可以上传题库,并基于这些题库创建心理测试试卷,进一步定义试题的规则,以便用户进行测试。用户通过小程序访问可见的试卷并完成相应的测试。此外,用户可以在论坛(贴吧)上发布帖子,与其他人交流心得,并且能与心理医生进行实时聊天,以便及时获得专业的心理咨询或帮助。JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的。

znbcj的博客 762

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

压力测试程序编写C语言,用C++ AMP写一个GPU压力测试程序

前言我们今天尝试写一个GPU压力测试程序,如果我们写一个CPU压力测试程序,我们知道我们需要让CPU进行繁重的计算,那么对于GPU压力测试程序该怎么做呢?C++ AMP首先我们应该会想到,该如何让我们的代码运行在GPU上?一些图形库API会进行硬件加速,如Direct3D和OpenGL。一些异构编程框架如CUDA与OpenCL可以指定代码在GPU上运行。然而这些库使用起来并不简单, 我们可能需要很...

weixin_30676351的博客 994

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一个人,如何完成一个小程序?

点击上方“服务端思维”,选择“设为星标”回复”669“获取独家整理的精选资料集回复”加群“加入全国服务端高端社群「后端圈」微信的小程序已经推出好一段时间了,项目组也做了好几个小程序,但都...

梁桂钊的博客 546

《c++小程序编写系列》(第一部)c++前言及有关知识

C++ 是一门兼顾性能与灵活性的编程语言,广泛应用于游戏开发、系统编程、嵌入式等领域,但它的语法规则相对严谨,直接学习复杂项目容易产生挫败感。而小程序编写快速验证语法知识,将 “死记硬背” 转化为 “实际应用”;培养 “问题拆解→代码实现→测试优化” 的编程思维;积累成就感,为后续复杂项目打下基础。本系列将从最基础的工具搭建开始,每篇聚焦一个实用小程序(如计算器、记事本、数据统计工具等),循序渐进讲解 C++ 核心知识点,适合零基础或刚接触 C++ 的学习者。变量类型。

浔川社团官方联合会优快云账号 712

VisualStudio为C++项目创建单元测试

主要介绍两种为VisualStudio的C++项目创建单元测试的方法:微软的本机单元测试、Google Test。 一、VisualStudio自带的本机单元测试 VisualStudio自带的有一个C++本机单元测试,其框架主要原理是生成一个动态库文件,测试的函数作为DLL的导出函数由框架进行调用测试。 然而实际使用下来体验并不是很好,不过还是简单说下怎么使用。 在解决方案下右键菜单-添加-新建项目,搜索C++项目里的“本机单元测试项目” 具体可以参考微软官方介绍:编写适用于 C/C++ 的单元测试 -

大星星的专栏 2322
上一篇: c/c++内存管理---堆和栈的区别
下一篇: [初]snail关于C++指针与内存管理的一些备忘
飞羽飞之猪
博客等级 码龄21年 127粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值