问题:
解答:
#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





















