08.10.2013, 11:19. Просмотров 1019. Ответов 6
проблема:Во второй элемент структуры данные не передаются, почему? Стоит отметить, что, если использовать просто new без размещения, то все отлично работает. Сравнивал с решение из решебника - вроде все верно...
Код:
Кликните здесь для просмотра всего текста
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| #include <iostream>
#include <new>
#include <cstring>
using namespace std;
const int BUF=1024;
char buffer[BUF];
struct chaff
{
char dross[20];
int slag;
};
void setstruct(chaff &,const char *, int);
void showstruct(const chaff &);
int main()
{
chaff * pt1=new (buffer) chaff[2];
setstruct(pt1[0], "Google", 12);
setstruct(pt1[1], "Yandex", 6);
for(int i=0; i<2; i++, pt1++)
showstruct(pt1[i]);
return 0;
}
void setstruct(chaff & pt, const char * dr, int sl)
{
strcpy(pt.dross, dr);
pt.slag=sl;
}
void showstruct(const chaff & pt)
{
cout<<"Dross: "<<pt.dross<<endl;
cout<<"Slag: "<<pt.slag<<endl<<endl;
} |
|
PS^ Так же, большая просьба объяснить где и как применяется new с размещением, насколько я понял из учебника - эта операция только добавляет головняка, а какой от нее profit?