读书人

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

发布时间: 2013-07-11 15:38:46 作者: rapoo

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的地址被你改变了

读书人网 >C++

热点推荐