const 付きで受けたchar型のポインタをfreeする時にWarning が出るんですが、
これって明示的にvoid型のポインタにキャストしなきゃいけないの?
警告が出るのは constだから?Warningは消せたのだけど、
理由が解らずに昨日から悩んでいます。

環境は、gcc/cygwin 3.1.1 です。


#include <stdlib.h>
char* foo(void){
char char *str = (char *)malloc(1);
return str;
}

int main(void){
const char *str = foo();
free(str); /* free((void *)str); だと ok */
str = NULL;
return EXIT_SUCCESS;
}