为什么我只为一个元素分配内存?
...
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。如果你想知道为什么
给出 1 - 所以这是因为在 64 位程序中指针( ) 的大小是 8 并且大小与. 如果它是一个 32 位程序,它将是 0...
dddouble