当前位置: 首页 > article >正文

【C++ Primer Plus习题】9.3

问题:

这里是引用
在这里插入图片描述

解答:

#include <iostream>
using namespace std;

struct chaff
{
	char dross[20];
	int slag;
};

int set_chaff(chaff& f, char* c, int n)
{
	if (strlen(c) > 0)
	{
		strcpy_s(f.dross, c);
		f.slag = n;
		return 1;
	}
	return 0;
	
}

void show_cahff(const chaff& f)
{
	cout << "dross: " << f.dross << endl;
	cout << "slag: " << f.slag << endl;
}

int main()
{
	char buffer[1024];//缓冲区
	char st[20];
	int slag, n = 0;
	chaff* pcf = new (buffer)chaff[2];//在缓冲区中构造
	cout << "请输入dross: ";
	cin.getline(st, 20);
	cout << "请输入slag: ";
	cin >> slag;
	while (strlen(st)>0)
	{
		cin.get();
		set_chaff(pcf[n++], st, slag);
		if (n >= 2)break;
		cout << "请输入dross: ";
		cin.getline(st, 20);
		cout << "请输入slag: ";
		cin >> slag;
	}
	for (int i = 0; i < 2; i++)
	{
		show_cahff(pcf[i]);
	}
	
	return 0;
}

运行结果:
在这里插入图片描述

考查点:

  • 缓冲区

注意:

  • 静态缓冲区分配好,就不需要delete了
    在这里插入图片描述
  • 动态缓冲区(内存),就需要使用delete
    在这里插入图片描述
  • 缓冲区的使用
    在这里插入图片描述
  • 区别
    在这里插入图片描述

在这里插入图片描述

2024年9月2日20:20:52


http://www.kler.cn/a/291840.html

相关文章:

  • winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭
  • WSL Ubuntu
  • 黑马Java面试教程_P1_导学与准备篇
  • 生信技能66 - bioconvert实现多种生信文件格式的转换
  • JAVA:代理模式(Proxy Pattern)的技术指南
  • 番外篇 | Hyper-YOLO:超图计算与YOLO架构相结合成为目标检测新的SOTA !
  • C# 删除Word文档中的段落
  • Golang 内存泄漏详解:原因、检测与修复
  • 【论文阅读】LLM4CP: Adapting Large Language Models for Channel Prediction(2024)
  • 啄木鸟上门安装维修系统源码开发
  • 【个人笔记】VCS工具与命令
  • 钢铁百科:Q420DR力学性能、Q420DR执行标准、Q420DR低温容器钢板
  • 自己设计的QT系统,留个档
  • Docker 容器编排之 Docker Compose
  • Arcgis将图层转shape文件
  • 【大数据】DataX深度解析:数据同步的神器是如何工作的?
  • Android Gradle 插件的说明
  • AI生成图片,ChatGPT生成路虎女逆行打人插图。
  • 语音测试(一)ffmpeg视频转音频
  • 【2024高教社杯全国大学生数学建模竞赛】B题 生产过程中的决策问题——解题思路 代码 论文
  • 浅谈C# 虚函数
  • halcon+c#+abb机器人=激光熔覆视觉工作站
  • ActiViz中的粒子系统详细解析
  • 基于SpringBoot+Vue+MySQL的社区维修平台
  • 揭秘美国大健康电商:为何Newsbreak广告成为其市场破局利器?
  • Qt QT中QString 类的使用--获取指定字符位置、截取子字符串等