c++学习之动态分配内存
时间:2019-11-27
本文章向大家介绍c++学习之动态分配内存,主要包括c++学习之动态分配内存使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于不确定数量的数据利用动态内存分配是非常好的
对于指针使用new 和delete来实现动态的内存分配 和释放内存
例如需要给整形分配内存和释放
1 int ×p = new int; 2 delete p; 3 4 int *p = new int[10]; 5 delete[] p;
对于指针的递增或递减是对一个指针类型的区域快进行移动而不是相邻的字节(除非长度刚好是1字节)
#include <iostream> using namespace std; int main( int argc ,char **argv) { cout << " Please input a num: "; int num = 0; cin >> num; int *p = new int [num]; for ( int i = 0 ; i < num ; ++i ) { cout << "Enter number " << i <<":"; cin >> *(p + i ); } for(int i = 0 ; i < num ; ++i) { cout << *(p++) << " "; } cout << endl; p -= num; delete[] p; return 0; }
该程序演示啦两种递增指针的方法;1,是通过偏移量变量 2是过通过运算符++它将指针包含的地址递增,让指针指向下一个元素
因为指针是通过new制定分配内存的,所以在delete[]释放内存时,需要将p的改为原始的内存值。这里通过 -=将p重新指向原来的地址。
原文地址:https://www.cnblogs.com/miaorn/p/11945145.html
- Java豆瓣电影爬虫——减少与数据库交互实现批量插入
- 谈谈C# 4.0新特性“缺省参数”的实现
- 如何实现对上下文(Context)数据的统一管理 [提供源代码下载]
- 不再和人工智能对弈?柯洁:我要食言了
- Spring实战——Profile
- Spring实战——XML和JavaConfig的混合配置
- ambari安装指南
- Spring实战——通过Java代码装配bean
- WCF技术剖析之三十一: WCF事务编程[中篇]
- Spring实战——无需一行xml配置实现自动化注入
- 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)
- RabbitMQ入门-Routing直连模式
- WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用
- .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Day 5:用两个栈实现队列
- C++核心准则T.42:使用模板别名简化记法并隐藏实现细节
- Python实战——ESIM 模型搭建(keras版)
- MapReduce工作笔记——Job调度参数设置
- 矩阵操作试题(C++/Python)——矩阵元素逆时针旋转90度(升级版)
- Macdown中[toc]无法生成目录解决方法
- Linux实用技巧——mkdir创建多级新目录
- C++核心准则T.43: 定义别名时,using比typedef更好
- C++核心准则T.44:使用函数模板推断类模板参数类型(如果可能)
- python函数——浅拷贝copy()以及深拷贝deepcopy()
- 数据结构算法操作试题(C++/Python)——两数之和
- C++核心准则T.46:要求模板参数最少是正规或半正规的
- python函数——List获取索引(多相同值解决方法)
- C++核心准则T.47:避免使用通用名称的高度不受限模板
- python函数——字符串字母大小判断