Я просто играю вокруг, просто не понимаю, почему первая версия работает, а вторая не работает?
using namespace std;
#include <iostream>
int main(){
int a,b;
double d{3035.4534536};
cout<<"Size of: int "<<sizeof (int)<<" double "<<sizeof (double)<<endl;
a=*((int*)&d);
b=((int*)&d)[1];
int dd[2]; //{a,b};
dd[0]=a; dd[1]=b;
cout<<"a: "<<a<<" |b: "<<b<<endl;
cout<<"d: "<<d<<" |: "<<*((double*)&dd)<<endl;
// int size=sizeof(d)/sizeof(int)+1, *temp= new int[size],
// *f{(int*)(&d)}, *t{temp}, *s{t+size};
// while(t!=s) { *t=*f; ++f; ++t; cout<<"."; }
// cout<<"dOrig.: "<<d<<" |temp: "<<*((double*)&temp)<<endl;
// delete[] temp;
int size=sizeof(d)/sizeof(int)+1, *temp= new int[size];
char *f{(char*)&d}, *t{(char*)temp}, *s{t+sizeof(d)};
while(t!=s) { *t=*f; ++f; ++t; cout<<"."; }
cout<<"dOrig.: "<<d<<" |temp: "<<*((double*)&temp)<<endl;
delete[] temp;
}
... я знаю, что «вот почему существуют контейнеры», это чистое любопытство , и я просто хочу понять, в чем проблема со вторым?
Есть ли где-то преобразование, о котором я не знаю?
Или указатель, возвращаемый new-Statement, больше, чем простой указатель на первый элемент?