开辟一个存储空间以存放一个结构体数据

news2024/11/17 16:17:40

        在软件开发中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的。C++提供了较简便而功能较强的运算符new和delete 来取代malloc和free函数。注意:new和delete是运算符,不是函数,因此执行效率高。虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算符。
        new运算符的例子:
        new int;                //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)        

        new int(100);        //开辟存放一个整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址
        new char[10];       //开辟一个存放字符数组(包括10个元素)的空间,返回字符数组首元素的地址

        new int[5][4];        //开辟一个存放二维整型数组(大小为5*4)的空间,返回首元素的地址
        float * p=new float(3.14159)        开辟一个存放单精度数的空间,并指定该数的初值为3.14159,将返回的该空间的地址赋给指针变量p
        new运算符使用的一般格式为
        new 类型[初值]
        注意:用new分配数组空间时不能指定初值。如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL,用户可以根据该指针的值判断分配空间是否成功。
        delete运算符使用的一般格式为
        delete 指针变量           (对变量)

        delete [] 指针变量        (对数组)
例如要撤销上面用new开辟的存放单精度数的空间(上面第5个例子),应该用
        delete p;
前面第3个例子用"new char[10];"开辟了字符数组空间,如果把new返回的地址赋给指针变量pt,则应该用以下形式的delete运算符撤销该空间:
        delete []pt;        //在指针变量前面加一对方括号,表示是对数组空间的操作

编写程序:

运行结果:

        注意:在main函数中并没有定义结构体变量,而是定义了一个基类型为Student的指针变量 p,用new开辟一段空间以存放一个Student类型的数据,空间的大小由系统根据Student自动算出,不必用户指定。执行new得到一个指向Student类型数据的指针(即所开辟空间的起始地址),把它赋给p。这样p就指向该空间。虽然没有定义结构体变量,但是可以通过指针变量p访问该空间。可以对该空间中各成员赋值,并输出它们的值。最后用delete撤销该空间。可以认为这是对一个无名的结构体变量进行操作。
        在动态分配/撤销空间时,往往将这两个运算符和结构体结合起来使用,是很有效的。

        可以看到:想访问用new所开辟的结构体空间,无法直接通过变量名进行,只能通过指针p进行访问。如果要建立一个动态链表,必须从第1个结点开始,逐个地开辟结点并输入各结点数据,通过指针建立起前后相连的关系。
        本文简要地介绍了结构体类型,这是一种很重要的类型,C++的类(class)类型就是在结构体类型基础上扩充发展而成的。有了结构体的基础,再进一步学习和掌握类,就比较容易了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1838844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一次完整的web渗透测试(文件上传getshell)

一、背景 日常空闲事件会进行一些公益SRC的挖掘,今天也是空闲,摸鱼有点浪费时间,那就拿几个公益SRC练练手(有waf的我会直接跳过,毕竟没钱去挂代理)。上号! 二、测试过程 2.1、目录扫描 先给…

Webmin在EPICS IOC启动中的应用

本文使用webmin启动远程工控机中的EPICS IOC,受控设备使用PI公司的六轴台以及相应的控制器C-887: 1)控制器C-887 2) 六轴台: 3)在工控机上安装用于与C-887控制器进行通信的EPICS IOC程序,安装结束后&#…

哪个城市的Delphier最多?Delphier平均年龄多大了?

先来看看哪个城市的Delphier最多: 北上广深不是白叫的, 大家想换工作,就去这些大城市,机会多。 有人会觉得奇怪,怎么才这么几个人? 因为以上数据统计基数为2000人, 根据微信公众号和QQ群得出…

基于jeecgboot-vue3的Flowable流程-业务表单

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 这个部分主要讲自定义业务表单的流程关联 1、挂接关联流程对话框代码 <!--挂载关联流程--><a-modal cancel"flowOpen false" :title"flowTitle" v-model:…

Linux系统:线程互斥

Linux系统&#xff1a;线程互斥 线程互斥互斥锁 mutex互斥锁原理 常见的锁死锁自旋锁 spinlock其它锁 线程互斥 讲解线程互斥前&#xff0c;先看到一个抢票案例&#xff1a; class customer { public:int _ticket_num 0;pthread_t _tid;string _name; };int g_ticket 10000…

酒店宾馆民宿预订管理系统(ThinkPHP+uniapp+uView)

便捷高效&#xff0c;轻松管理你的住宿预订&#x1f3e8; 基于ThinkPHPuniappuView开发的多门店民宿酒店预订管理系统&#xff0c;快速部署属于自己民宿酒店的预订小程序&#xff0c;包含预订、退房、WIFI连接、吐槽、周边信息等功能。​​ 一、引言&#xff1a;为何需要民宿…

安卓手机数据快速找回!2个视频恢复大师,助你还原视频

我们的手机成为了储存信息的海洋。但与此同时&#xff0c;也带来了一个不容忽视的问题&#xff1a;一旦手机中的视频资料丢失&#xff0c;我们该如何高效地找回呢&#xff1f;现在很多程序都能够有效地找回手机视频&#xff0c;本文将为您揭示这些视频恢复大师的神奇能力&#…

家用洗地机哪个好?选对洗地机,还你一个清爽的家,快来抄作业!

能够带来高效生活的洗地机已经成为现代家庭清洁的首选。如果你还在犹豫的话&#xff0c;不妨看看这篇文章&#xff0c;让我来带你感受科技清扫的魅力&#xff0c;轻松扫净灰尘污渍&#xff0c;重拾家居整洁。洗地机&#xff0c;不只清洁&#xff0c;更是一种高品质生活态度的选…

【数据结构与算法】对称矩阵,三角矩阵 详解

给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。 对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素&#xff0c;而不是全部元素。 对称矩阵&#xff1a;对于一个n阶对称矩阵&#xff0c;我们只需要存储主对…

大学物理绪论组收集和分析

目录 ​编辑 随机误差的估计 算术平均值的标准偏差 不确定度&#xff08;Uncertainty&#xff09;是测量学中的一个重要概念&#xff0c;用于表示测量结果的可靠程度。它反映了测量值可能偏离真值&#xff08;即被测量的客观真实值&#xff09;的程度。 A类不确定度的计算方…

访问0xdddddddd内存地址引发软件崩溃的实战问题排查

目录 1、问题描述 2、访问空指针或者野指针 3、C程序中常见的异常内存值 4、0xdddddddd内存访问违例问题分析与排查 4.1、初步分析 4.2、CConfMeidaConfigDlg窗口类对象是何时被销毁的&#xff1f; 4.3、为啥会访问到已经释放内存的CConfMeidaConfigDlg类对象&#xff1…

centOS Stream9配置NAT8网络

首先将VMware关机&#xff0c;添加网络适配器 启动虚拟机&#xff0c;查看ens192是否打开连接 安装的图形化需要查看右上角电源处网卡是否连接 最小化安装一般不会出现未连接的状态 使用ip a 查看 配置网卡文件 cd /etc/NetworkManager/system-connections/cd到当前目录下…

四维世景产品及研发部副总经理张静普受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 四维世景科技&#xff08;北京&#xff09;有限公司产品及研发部副总经理张静普先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“项目管理中的数字化实践及应用”。大会将于6月29-30日在北京举办&#xff0c;敬请关注…

C++11(下):线程库

线程库 1.线程1.1线程类介绍以及简单使用1.2线程函数参数1.3如何获取线程函数返回值 2.锁2.1锁的种类2.2 lock_guard与unique_lock 3.原子库3.1介绍与基本使用3.2CAS&#xff08;原子操作原理&#xff09; 4.条件变量 1.线程 1.1线程类介绍以及简单使用 在C11之前&#xff0c…

Android device/xxx/system/common/overlay编译产物

MTK 如下代码编译的产物在 framework-res.apk 编译配置文件在device/mediatek/system/common/目录下的Android.bp device/mediatek/system/common/overlay/telephony/frameworks/base/core/res/res/values-mcc655-mnc01/config.xml 在Android U上面还在overlay目录中进行了产…

NSSCTF-Web题目10

目录 [强网杯 2019]随便注 1、题目 2、知识点 3、思路 [GXYCTF 2019]BabyUpload 1、题目 2、知识点 3、思路 [强网杯 2019]随便注 1、题目 2、知识点 数据库注入&#xff0c;堆叠注入&#xff0c;更改表名 3、思路 正常提交查询&#xff0c;看看数据回显 加入单引号…

Ubuntu下FastDDS的源码编译和简单测试

FastDDS是eprosima公司开发的DDS&#xff08;Data Distribution Service&#xff09;库&#xff0c;使用的语言是C&#xff0c;自称是"The Most Complete Open Source DDS Middleware"&#xff0c;其官网是https://eprosima.com/&#xff0c;FastDDS源码在https://gi…

金鸣识别系统:PDF转Excel的高效利器

在日常办公中&#xff0c;我们经常需要将PDF文档转换为Excel表格以便进行数据分析。然而&#xff0c;当有些PDF转换过程可能会变得复杂&#xff0c;因为许多转换工具无法完美处理图片元素&#xff0c;导致转换后的准确率不高或排版错乱。幸运的是&#xff0c;金鸣识别系统以其卓…

细致解析跨境电商多平台搭建利器-179海关接口源码应用方法

介绍 跨境电商已成为当前电商行业的热门发展方向之一。为满足跨境电商的需求&#xff0c;各大平台纷纷推出了多平台搭建利器。其中&#xff0c;179海关接口源码是一款非常实用的工具&#xff0c;本文将对其应用方法进行细致解析。 了解179海关接口源码 179海关接口源码可以帮…

天翼云8080、80端口用不了的问题

天翼云8080、80端口用不了的问题 前言&#xff1a;前段时间天翼云搞了活动&#xff0c;原来公司用的华为云老板说太贵了也快到期了&#xff0c;就换了天翼云的服务器。 排查&#xff1a; 安全组开放 80 8080 防火墙查看 没有问题 nginx nacos dcoker等停了 查看监听端口 发现…