?? new.cpp
字號(hào):
// 3.下面是一個(gè)結(jié)構(gòu)聲明:
// struct chaff
// {
// char dross[20];
// int slag;
// };
// 編寫一個(gè)程序,使用布局new操作符將一個(gè)包含兩個(gè)這種結(jié)構(gòu)的數(shù)組放在一個(gè)緩沖
// 區(qū)中.然后,給結(jié)構(gòu)的成員賦值(對(duì)于char數(shù)組,使用strcpy() ),并使用一個(gè)循環(huán)來
// 顯示內(nèi)容.方法1是像程序清單9.9那樣將一個(gè)靜態(tài)數(shù)組用作緩沖區(qū);方法2是使用常
// new操作符來分配緩沖區(qū)
#include <iostream>
#include <cstring>
#include <new> // for placement new
const int BUF = 1000;
const int N =2;
struct chaff
{
char dross[20];
int slag;
};
int main()
{
using namespace std;
char buffer[BUF];
chaff * p1 = new chaff[N]; // use heap
chaff * p2 = new (buffer) chaff[N]; // use buffer array
for(int i = 0; i<N; i++)
{
cout<<"Please input the dross"<<i+1<<": ";
char temp[20];
cin.get(temp,20);
while(cin.get() != '\n') // 截掉多余字符
continue;
strcpy(p1[i].dross,temp);
strcpy(p2[i].dross,temp);
cout<<"Please input the slag"<<i+1<<": ";
cin>>p1[i].slag;
while(!cin) // if bad input,input again
{
cin.clear();
while(cin.get() != '\n') // 截掉多余字符
continue;
cout<<"Please a integer for slag"<<i+1<<": ";
cin>>p1[i].slag;
}
cin.get();
p2[i].slag = p1[i].slag;
}
cout<<"Buffer addresses:\n"<<" heap: "<<p1
<<" static: "<<(void *) buffer <<endl;
for(int j = 0; j<N; j++)
{
cout<<p1[i].dross<<"->"<<p1[i].slag<<" at "<<&p1[i];
cout<<p2[i].dross<<"->"<<p2[i].slag<<" at "<<&p2[i]<<endl;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -