От чего у меня выделяется память только для одного элемента?
...
double * dd = (double*)malloc(size*sizeof (double));
std::cout << "multiple void dd " << sizeof (dd)/sizeof (double) << " size "<< size <<std::endl;
...
run
multiple void dd 1 size 2625
Вторая реализация с исправлением:
...
double * dd = new double (size);
free(dd);
double dd1 = *dd;;
std::cout << "multiple void dd1 " << sizeof (dd1)/sizeof (double) << " size "<< size <<std::endl;
...
run
multiple void dd1 1 size 2625
У вас выделяется память для size элементов, которое, судя по выводу, у вас равно 2625.
Если же вас интересует, почему
sizeof (dd)/sizeof (double)
дает 1 - так это потому, что размер указателя (dd) в 64-разрадной программе равен 8 и совпадает с размером double. Была бы 32-разрядная программа - было бы значение 0...
Продвижение своими сайтами как стратегия роста и независимости