内存访问冲突:原因是啥? 先放代码
void main()
{
char *str = "abcdefg";
str[0] = 11;
}运行到str[0]=11时直接程序崩溃,why?

解决方案 »

  1.   

    str 是个指向常量的指针,只能改变其指向,不能改变其指向的内容
      

  2.   

    char *str = "abcdefg";
    =============
    这个在分配内存时是放在常量区的,不能修改的
      

  3.   

    指向常量区,怎么可以改变
    只有自己申请了控件,才可以进行赋值操作
    例如
    char *str = new BYTE[MAX_PATH];
      

  4.   

    str指向字符串的常量指针,不可改变其内的值,只可改变其指向。
      

  5.   

    abcdefg是常量字符串,不能改变
    如果指向一个变量,则可以用指针赋值。