编写一个程序,使用定位new运算符将一个包含两个这种的结构 的数组放在一个缓冲区中,然后给成员赋值,并使用循环查看内容
使用结构声明struct chaff
{
char dross[20];
int slag;
};
编写一个程序,使用定位new运算符将一个包含两个这种的结构
的数组放在一个缓冲区中,然后给成员赋值,并使用循环查看内容
头文件golf.h
namespace golf
{
struct chaff
{
char dross[20];
int slag;
};
typedef struct chaff Str_Cha;
typedef Str_Cha* Str_Cha_pointer;
void show(Str_Cha_pointer* pd, int n);
}
源代码1
#include<iostream>
#include"golf.h"
namespace golf
{
void show(Str_Cha_pointer* pd,int n)
{
for (int i = 0; i < n; i++)
{
std::cout << "Dross: " << pd[i]->dross << std::endl;
std::cout << "Slag: " << pd[i]->slag << std::endl;
}
}
}
源代码2
#include<iostream>
#include"golf.h"
#include<new>
int main()
{
using namespace std;
char buffer[500];
golf::Str_Cha* pd = new (buffer)golf::Str_Cha[2];
int i = 0;
do
{
std::cout << "Enter the dross:";
std::cin.getline(pd[i].dross, 20);
std::cout << "Enter the slag:";
std::cin >> pd[i].slag;
std::cin.get();
i++;
} while (pd[i-1].dross[0]!='\0'&& i < 2);
golf::show(&pd,2);
delete[]pd;
return 0;
}
执行出错了