От чего у меня выделяется память только для одного элемента?
...
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...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Написал код для создания числовой пирамиды на N строк, где в каждой строке нумерация идет от 1 до N строки через пробелВсе компилируется и работает,...
Я не знаю баг это или фича, но Visual Studio C++ (VS 141) не подсвечивает ошибки если функция использует шаблонные параметры, да и вообще работает с шаблонном
Предположим, есть программа, которая должна в зависимости от системы Linux/Windows запускать исполняемый файлЕсть ли в стандартной библиотеке...