/*
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++创建动态数组相关推荐

  1. 研一寒假02-指针_new分配内存_使用new来创建动态数组_使用动态数组_使用delete来释放new分配的内存...

    #---------------------------------指针-----------------------------------# #include <iostream> i ...

  2. 【malloc函数 创建动态数组】

    亲爱的盆友们大家好,我们都知道,在C语言中如果要使用数组,就必须提前设置好数组大小 eg: int arr[100], char arr[100], 不能设置 int arr[ ]    否则电脑会报 ...

  3. CPP第四版第四章:创建动态数组

    数组类型的变量有三个重要限制:         数组长度固定不变         在编译时必须知道其长度         数组只在定义它的块语句内存在     每一个程序在执行时都占用一块可用的内存空 ...

  4. python动态数组怎么实现_如何创建动态数组

    据我所知,Python中的list类型是一个动态指针数组,当向其追加项时,它将增加其容量.NumPy中的数组使用一个连续的内存区域来保存数组的所有数据. 是否有任何类型可以动态地将其容量增加为列表,并 ...

  5. 如何在VC中创建动态数组

    怎样给多维数组动态分配内存 //Allocate: int **p = new int* [m]; for(int i = 0 ; i < m ; i++) p[i] = new int[n]; ...

  6. 【C language】动态数组的创建和使用

    在C语言中,使用malloc函数创建动态数组,使用一个指针指向它,使用下标进行访问. unsigned long *a = (unsigned long *)malloc(2 * sizeof(int ...

  7. C++中使用模板,new创建2维动态数组

    1 // 使用模板和new创建2维动态数组 2 3 #include<iostream> 4 #include<exception> 5 #include<cstdlib ...

  8. C语言——动态数组的创建和使用

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  9. c语言动态数组的创建

    用变量n如何创建a[n]呢? 首先,对于动态数组,大多数人初学时可能是这种情况: scanf("%d",&n); int a[n]; 当然,这种方法是不对的. 因为在程序运 ...

最新文章

  1. 千亿美元市值的拼多多,真被高估了吗?
  2. 阿里云IoT百万资源,寻找极客合作伙伴
  3. poj 3131 双向搜索+hash判重
  4. 基于几何距离的椭圆拟合
  5. 不属于html5表单元素的是,HTML5 表单元素
  6. (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
  7. 计算机本地磁盘包括,电脑中系统文件夹和本地磁盘各是什么意思?又有什么不同?...
  8. 服务器ssd硬盘格式化,ssd固态硬盘格式化教程
  9. 0ctf Babyheap 2017
  10. 数字信号处理中均值、均方值、均方差、均方根值、均方误差、均方根误差、方差、协方差、标准差对比分析及统计学意义
  11. 随机过程 Class 3 条件期望
  12. 全球运输工业的升级会带来什么
  13. 数据采集 - 获取【码市】最新发布需求,并实时通知用户 案例二
  14. oracle中计算两个日期之间的差值
  15. MATLAB模糊数据工具箱的使用
  16. EAS F7 左树右表
  17. uni-app的常用功能查询,uni-app入门级使用指南。
  18. html ios编程工具,DevmyApp:傻瓜式iOS应用程序开发软件
  19. 零基础如何自学编程?用这6种方法就够了!
  20. SAS 对单个数据集的处理

热门文章

  1. CentOS7安装MongoDB及基础操作
  2. 豆豆趣事[2013年02月]
  3. Androidstudio检测不到夜深模拟器解决方法
  4. KEIL5 头文件路径设置摸索和总结
  5. 问题 J: 古罗马数字2
  6. 什么是jQuery[0002]
  7. 2011 Asia Beijing Regional Online Contest-1004 hdu4043 FXTZ II
  8. 岚图汽车中大型智能电动SUV完成高温高原严苛测试
  9. 硬盘只剩下一个大分区数据恢复图文教程
  10. 初识mysql实验小结_初识mysql学习笔记