C++ char * 和char之间的一些转换有关问题

C++ char * 和char之间的一些转换问题

char *ccccc=(char *)malloc(sizeof(char));
ccccc="11111111";
*ccccc = (char)100;

这样会报写入位置时发生访问冲突错误,但下面这样却正常

char *ccccc=(char *)malloc(sizeof(char));
*ccccc = (char)100;
ccccc="11111111";

还有一点,弹出来的提示框框后面带了问号,似乎ccccc的值为“d    ? ??”

char *ccccc=(char *)malloc(sizeof(char));
*ccccc = (char)100;
::MessageBox(hWnd,ccccc,"花",0);

为什么呢?
c++ char char

------解决方案--------------------
char *ccccc=(char *)malloc(sizeof(char));
ccccc="11111111";
*ccccc = (char)100;

是在修改 "11111111" 这个只读内存的内容.

char *ccccc=(char *)malloc(sizeof(char));
*ccccc = (char)100; 修改的是 malloc 出来的内存.
ccccc="11111111";


char *ccccc=(char *)malloc(sizeof(char));
*ccccc = (char)100;
::MessageBox(hWnd,ccccc,"花",0);

字符串以 '\0' 结尾, 否则后面的内容随机.
------解决方案--------------------
cccc的地址被你改变了