char *p="Hello World!";
char *d="Yes,ok!";
strcpy(p,d);
请高手解释下 strcpy 运行时报错.我是用vs2008运行的 

解决方案 »

  1.   

    google源码#include <string.h>char *
    strcpy(char *to, const char *from)
    {
    char *save = to; for (; (*to = *from) != '\0'; ++from, ++to);
    return(save);
    }
      

  2.   

    改为:你再试试 char p[]="Hello World!" d[]="Yes,ok!"; 
    strcpy(p,d);
      

  3.   

    因为你使用的是字符串常量,而strcpy第一个参数是可读写的,所以要用char[]数组或其他可写的类型才可以
      

  4.   

    char *p="Hello World!";
        char *d="Yes,ok!";
    都是const的,改变其内容当然会报错
      

  5.   

    char *p="Hello World!";
        char *d="Yes,ok!";当你这样用的时候,p,d这地址所指定的内容都是常量,不能修改
      

  6.   

    按楼上各位说的,那就是 char *p 默认是 const 限制的?就是p指向的内容不可以修改的,是吧
      

  7.   

    理解了,我试过,如果把strcpy的第一个参数,定义为数组,就没有问题..又加深一层理解...
    晕倒太菜了
      

  8.   

    我是菜鸟,觉得p,d都指向各自的首地址,没循环 没++,行不通吧
    http://baike.baidu.com/view/1026861.htm
      

  9.   

    那再问下,那定义了 char *p="hello world!"
    delete p; 这句是错误的吧,这个指针指向的是常量,在程序退出的时候,会自动释放这个指针吗