Possible Duplicate:
Deleting a pointer to const (T const*)
Lets take a look to this lines of code:
char * x = new char [2];
x[0] = 'a'; // OK
x[1] = 'b'; // we can modify data using x
const char * y = x;
y[0] = 'c'; // Error
y[1] = 'd'; // we can't modify data using y
delete [] y; //but we can deallocate memory (i.e. delete data) using y
So in my opinion it is more naturally to have restriction to not be able deallocate memory using const pointer to it. Why there is no such restriction?