C++ 使用指针动态创建数组

为了节约内存,作者曾一度疯狂,希望能够使数组在运行时Uers指定长度创建数组。发现在C++中 vector 模块类 可以解决这个问题。再使用过 vector 模块类 后,我开始发现原来 vector 其实是使用C++指针的new运算符建立的,于是拿起《C++ Primer Plus》开始啃其原理。

使用指针动态创建数组,总结如下:

  1. 创建
    格式:
typeName * pName = new typeName  [size]

第一个typeName是储存地址的指针的类型,第二个typeName是数组的类型,最后这里的size可以是变量,意味着可以在运行阶段创建动态的数组,而不再是在编译阶段确定的常量(内存福音~)

  1. 使用
    直接像数组那样通过下标访问元素,栗子:
int * book = new int [num];
for(int i=0;i!=num;i++)
    {
        cin>>book[i];
    }
  1. 释放内存
    切记切记!
    用完指针必释放内存,否则内存可能崩溃!(就如你借书了不换,后面借书的人自然借到的书越来越少)
delete [] book;

栗子:

#include <iostream>

using namespace std;

int main()
{
    int num;
    cout<<"How many?"<<endl;
    cin>>num;
    int * book = new int [num];
    for(int i=0;i!=num;i++)
    {
        cin>>book[i];
    }
    
    delete [] book;
    system("pause");
    return 0;
}

Now,enjoy your code!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,775评论 18 399
  • C++运算符重载-下篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 5,331评论 0 49
  • C、C++之动态数组的实现 本篇博客基于笔者本人正在学习的C++上机课程作业,主要代码由C语言构成。由于C语言没有...
    largerthanlife阅读 5,117评论 0 1
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,855评论 3 44
  • 我因为养宠物的事儿不是气了么。我就把在朋友圈把男同志给屏蔽了。 哼,姐的朋友圈那么好看,是那么好看的么! 男同志晚...
    S猫阅读 3,561评论 2 8

友情链接更多精彩内容