+12  A: 

Because the compiler can't guarantee safety.

See Q11.10 from the comp.lang.c FAQ: Why can't I pass a char ** to a function which expects a const char **?

jamesdlin
+1  A: 

I was able to find the following link that quotes the standard as to why:

http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/463022c3-d617-4f9a-bb9d-df4a51a438e9

http://support.microsoft.com/kb/87020

KevenK