unsigned char and Kinect

Hello,
I’m trying to implement color tracking with the kinect in HSV. I’m getting an error when I try to create a new unsigned char [width*height]. "Array size expression must have integral or enumerated type, not ‘float’.
I use to do this with a regular camera and works fine, should I do it in a different way for the kinect?

void testApp::setup(){
width = kinect.width;
height = kinect.height;

kinect.setUseRegistration(true);
kinect.init();
kinect.open();

colorImage.allocate(width,height);
grayImage.allocate(width, height);
hsvImage.allocate(width, height);
videoGrayscaleCvImage1.allocate(width,height);

grayPixels1 = new unsigned char [width * height]; //here’s the problem

}

Looks like it just wants an int instead of a float

  
  
int width  = 640;  
int height = 480;  
  
unsigned char * grayPixels1;  
	  
int size = width * height;  
grayPixels1 = new unsigned char [size]; //passes  
	  
float fSize  = width * height;  
	  
grayPixels1 = new unsigned char [fSize];  //fails