目标:编写最简单的四则运算,类似A+B=C;

想法:建立一个Win32控制台应用程序,A和B用随机数表示,运算符号用0~3的数字对应,然后计算并输出即可;

具体过程:

利用函数rand(),返回一个0至65535之间的随机数;产生0至3之间的随机数,用rand()%4;

在验证的过程中发现,程序每次生成的随机运算都是相同的,查询发现,要产生不同的随机数,需要用到一个新的函数srand,

这个函数是根据当时计算机的时间给随机数产生一个随机种子(seed),函数原型是srand( (unsigned)time( NULL ) );

srand和rand函数都包含在stdlib.h的头文件里。

我是用VS2010写的,接着问题来了:

利用malloc分配内存,结尾free()释放内存,调试时发现程序运行后会提示:

百度发现解决办法:http://blog.sina.com.cn/s/blog_668aae780101iou9.html

采用第三种方法:使用单一的堆,分配内存使用 HeapAlloc(GetProcessHeap(),0,size),释放内存使用HeapFree(GetProcessHeap(),0,p);

使用HeapAlloc/HeapFree需要在头文件添加声明windows.h;

调试,竟然还是同样的问题,其他的几个方法我都不会啊!

怎么办?

换了个编程软件,在CodeBlocks中运行,竟然没问题了。

像这种主动分配内存的程序,VS限制的东西很多,需要注意很多东西。

程序如下:

第二篇——VC++简单随机四则运算的更多相关文章

  1. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第二篇:gradle简单实战

    一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊,走 ...

  2. 【OpenGL】第二篇 Hello OpenGL

    ---------------------------------------------------------------------------------------------------- ...

  3. 解剖SQLSERVER 第二篇 对数据页面头进行逆向(译)

    解剖SQLSERVER 第二篇  对数据页面头进行逆向(译) http://improve.dk/reverse-engineering-sql-server-page-headers/ 在开发Orc ...

  4. python-字典(第二篇(四):字典)

    [Python之旅]第二篇(四):字典 摘要: 说明:     显然Python中字典的学习过程与列表是一样的,主要是围绕下面的函数来进行重点学习: 1 2 3 4 5 6 7 8 9 10 11 & ...

  5. 视觉SLAM中的数学基础 第二篇 四元数

    视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM ...

  6. 如何制作一款HTML5 RPG游戏引擎——第二篇,烟雨+飞雪效果

    今天我们来实现烟雨+飞雪效果.首先来说,一款经典的RPG游戏难免需要加入天气的变化.那么为了使我们的RPG游戏引擎更完美,我们就只好慢慢地实现它. 本文为该系列文章的第二篇,如果想了解以前的文章可以看 ...

  7. [翻译]Go与C#的比较,第二篇:垃圾回收

    Go vs C#, part 2: Garbage Collection | by Alex Yakunin | ServiceTitan - Titan Tech | Medium 目录 译者注 什 ...

  8. [ 高并发]Java高并发编程系列第二篇--线程同步

    高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...

  9. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

随机推荐

  1. Mongodb基础知识笔记

    MongoDB介绍 MongoDB是一个基于分布式文件存储的开源文档数据库.由C++语言编写.旨在为WEB应用提供高性能.高可用性和高伸缩数据存储解决方案. MongoDB优点 MongoDB使用场景 ...

  2. Mac配置虚拟主机

    一.启动Apache 终端输入:sudo apachectl start Apache的安装目录在:/etc/apache2/,etc默认是隐藏的.有三种方式查看: 1.桌面位于Finder时:shi ...

  3. 2.7 usb摄像头之usb摄像头描述符打印

    学习目标:参考lsusb源码,打印USB摄像头的设备描述符.配置描述符.接口联合描述符.端点描述符: 一.lsusb命令和源码 使用命令lsusb可以看看设备的id,并执行 # lsusb -v -d ...

  4. SQL Server 2008 R2 Express Profiler

    I successfully installed SQL Server Profiler 2008 R2 Profiler without uninstalling SQL 2008 R2 Expre ...

  5. springboot-web进阶(二)——AOP统一处理请求

    一.AOP使用示例 AOP的概述在spring篇已经存在,这里不再赘述 1.准备 引入依赖 <dependency> <groupId>org.springframework. ...

  6. 英语linux+英语firefox+英语Oracle OEM如何设置成显示日语

    1 linux安装盘挂载,安装日语语言包 2 linux的系统语言设置为日语 3 firefox的 edit-> setting -> contents -> language se ...

  7. Atom使用教程

    1.Atom简介 2.安装 官网下载地址:https://atom.io/ 安装目录默认安装在 扩展包的位置 3.推荐扩展包 我的扩展包都是下载好的,直接放在packages文件夹下的 (1)simp ...

  8. 解决 sr 的端口占用问题

    只需要在一开机的极短时间内开启 sr 即可提前占用端口,而不是被占用

  9. frp+TeamViewer 完美解决TeamViewer5分钟商业提醒

    必要条件:必须有一个公网服务器 frp是一个开源的端口转发工具,中文使用说明及下载地址在这里  https://github.com/fatedier/frp/blob/master/README_z ...

  10. ASP.NET MVC - PageData的应用

    一.要实现一个功能,在不同的页面放置一段如下的内容,用于采集用户行为信息: <input type='hidden' id='page_id' value='xxxx' /> <sc ...