Why does expression with double execute and with int doesn't? May somebody explain?
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <iostream>
usingnamespace std;
int main()
{
int a;
double b;
int *p=newint [b]; //that one doesn't work
double *p1=newdouble [a]; //but that one works
return 0;
}
The new operator allocates memory for a specified number of items. That has to be a whole number. It wouldn't make sense to allocate half an item. Hence it has to be an integer value.
Also, a should be assigned some specific value before trying to use it.