ca32a_demo_c++创建动态数组
/*
ca32a_demo_c++创建动态数组20200127
静态是在堆栈上创建的,动态实在堆(heap)上创建的
堆(heap)-自由存储区(free store)-内存的一个区域
c语言:malloc创建和free释放
c++语言:new和delete()
动态数组的定义
初始化动态分配的数组
const对象的动态数组
允许动态分配空数组
动态空间的释放
动态数组的使用
*/
//静态数组,是在堆栈上创建的,局部的自动变量。当main函数结束时,堆栈上的局部的自动变量会自动清除
动态数组有什么作用呢?
如下:
https://blog.csdn.net/txwtech/article/details/104094336
/*
ca32a_demo_c++创建动态数组20200127
静态是在堆栈上创建的,动态实在堆(heap)上创建的
堆(heap)-自由存储区(free store)-内存的一个区域
c语言:malloc创建和free释放
c++语言:new和delete()
动态数组的定义
初始化动态分配的数组
const对象的动态数组
允许动态分配空数组
动态空间的释放
动态数组的使用*/
#include <iostream>using namespace std;int main()
{int a[10];//静态数组,堆栈上创建的int n;cout << "您想要多大的数组: " << endl;cin >> n;int *p=(int *)malloc(n*sizeof(int)); //c语言:malloc创建和free释放if (p != NULL){cout << "C语言:malloc创建动态数组成功!" << endl;}int *pia = new int[n];if (pia != NULL){cout << "c++:new创建动态数组成功!" << endl;}free(p);//释放c语言创建的动态数组指针delete[] pia;//删除数组指针//getchar();return 0;
}
#include <iostream>
//忘记delete会产生内存泄漏
using namespace std;class Dog
{};int main()
{int a[] = { 1,2,3,4,5 };//静态数组,是在堆栈上创建的,局部的自动变量。当main函数结束时,堆栈上的局部的自动变量会自动清除int *pia = new int[10];//没有初始化string *psa = new string[10];//默认的构造函数初始化delete[] psa;Dog *pDog = new Dog[10];int *pia2 = new int[10]();//内置类型动态初始化为0;cout << *(pia2 + 2) << endl;*pia = 9;*(pia + 1) = 8;*(pia + 3) = 6;cout << *(pia + 1) << endl;cout << *(pia + 3) << endl;for (int* q = pia; q != pia + 10; ++q){*q = 11;}for (int* q = pia; q != pia + 10; ++q){cout << *q << endl;}for (int i=0;i<10;i++) //普通循环{cout << *(pia+i) << endl;}const int *pci_bad = new const int[100]();//后面的小括号进行初始化0,不能修改该,没有什么用处。//char arr[0];//静态数不能分配0char *cp = new char[0];//动态数可以分配0cout << "请输入动态数组的大小: ";size_t n;cin >> n;int *p = new int[n];for (int *q = p; q!=p + n; ++q){*q = 22;cout << *q << endl;}delete[] p;//忘记delete会产生内存泄漏delete[] cp;delete pia2;delete[] pci_bad;return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>using namespace std;int main()
{const char *pc = "a very long literal string";const size_t len = strlen(pc);for (size_t ix = 0; ix != 8; ++ix){char *pc2 = new char[len + 1];//c语言方式动态创建,处理c风格字符串strcpy(pc2,pc);cout << pc2<< endl;delete[] pc2;//cout << "PC2:" << endl;}string str("a very long literal string");for (size_t ix = 0; ix != 8; ++ix){string str2 = str;cout <<"c++: "<< str2 << endl;//delete[] pc2;//cout << "PC2:" << endl;}return 0;
}
ca32a_demo_c++创建动态数组相关推荐
- 研一寒假02-指针_new分配内存_使用new来创建动态数组_使用动态数组_使用delete来释放new分配的内存...
#---------------------------------指针-----------------------------------# #include <iostream> i ...
- 【malloc函数 创建动态数组】
亲爱的盆友们大家好,我们都知道,在C语言中如果要使用数组,就必须提前设置好数组大小 eg: int arr[100], char arr[100], 不能设置 int arr[ ] 否则电脑会报 ...
- CPP第四版第四章:创建动态数组
数组类型的变量有三个重要限制: 数组长度固定不变 在编译时必须知道其长度 数组只在定义它的块语句内存在 每一个程序在执行时都占用一块可用的内存空 ...
- python动态数组怎么实现_如何创建动态数组
据我所知,Python中的list类型是一个动态指针数组,当向其追加项时,它将增加其容量.NumPy中的数组使用一个连续的内存区域来保存数组的所有数据. 是否有任何类型可以动态地将其容量增加为列表,并 ...
- 如何在VC中创建动态数组
怎样给多维数组动态分配内存 //Allocate: int **p = new int* [m]; for(int i = 0 ; i < m ; i++) p[i] = new int[n]; ...
- 【C language】动态数组的创建和使用
在C语言中,使用malloc函数创建动态数组,使用一个指针指向它,使用下标进行访问. unsigned long *a = (unsigned long *)malloc(2 * sizeof(int ...
- C++中使用模板,new创建2维动态数组
1 // 使用模板和new创建2维动态数组 2 3 #include<iostream> 4 #include<exception> 5 #include<cstdlib ...
- C语言——动态数组的创建和使用
C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...
- c语言动态数组的创建
用变量n如何创建a[n]呢? 首先,对于动态数组,大多数人初学时可能是这种情况: scanf("%d",&n); int a[n]; 当然,这种方法是不对的. 因为在程序运 ...
最新文章
- 千亿美元市值的拼多多,真被高估了吗?
- 阿里云IoT百万资源,寻找极客合作伙伴
- poj 3131 双向搜索+hash判重
- 基于几何距离的椭圆拟合
- 不属于html5表单元素的是,HTML5 表单元素
- (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
- 计算机本地磁盘包括,电脑中系统文件夹和本地磁盘各是什么意思?又有什么不同?...
- 服务器ssd硬盘格式化,ssd固态硬盘格式化教程
- 0ctf Babyheap 2017
- 数字信号处理中均值、均方值、均方差、均方根值、均方误差、均方根误差、方差、协方差、标准差对比分析及统计学意义
- 随机过程 Class 3 条件期望
- 全球运输工业的升级会带来什么
- 数据采集 - 获取【码市】最新发布需求,并实时通知用户 案例二
- oracle中计算两个日期之间的差值
- MATLAB模糊数据工具箱的使用
- EAS F7 左树右表
- uni-app的常用功能查询,uni-app入门级使用指南。
- html ios编程工具,DevmyApp:傻瓜式iOS应用程序开发软件
- 零基础如何自学编程?用这6种方法就够了!
- SAS 对单个数据集的处理