现定义了char* strTest[8];
char* a="aaa";
char* b="bbb";
char* c="ccc";现在想分别对strTest[0]~strTest[7]进行复制
我用
strcpy(strTest[0],a);
strcpy(strTest[1],b);
strcpy(strTest[2],c);不能完成相应功能!
盼复!

解决方案 »

  1.   

    strTest[0],只是个指针,并没有用来存储数据的空间
    strTest[0]= new char[256];
    strcpy(strTest[0],a);
      

  2.   

    char* strTest[8];只定义了8个字符串指针,但没有分配空间。strcpy当然出错。改为:
      strTest[0] = new char[4];
      strcpy(strTest[0],a);
      ... //以下类似
      

  3.   

    最好这样定义
    char strTest[8][4];
    char a[]="aaa";
    char b[]="bbb";
    char c[]="ccc";
      

  4.   

    对,先给strTest[i]分配内存空间。
      

  5.   

    二胖的说法好,但客观条件要求我不能这样作!呵呵!
    噢!
    我找到原因了,我用的是
    for (int i=0;i<8;i++)
    {
       strTest[j]="       ";
    }
    分配的空间,为什么不行?
      

  6.   

    还是
    char *pchar ="abcdefg";

    char *pchar =new (sizeof(char) *8);
    的区别问题。