比如char *a="a",向在其后加入b,a="ab"
就是相当于char a[10],strcat(a,"b"),
好像指针不能做strcat运送是吗,赋值后就是常量了吗

解决方案 »

  1.   

    不做解释,请下面
    #include <stdio.h>
    #include <string.h>int main ()
    {
      char a[50];
      strcpy (a,"test,");  char *b = "C++!";
      if (sizeof(a)>strlen(a)+strlen(b))
          strcat(a,b)
      else {
          printf ("Array OverFlow!");
          return -1;
           }  printf ("%s\n", a);
      return 0;
    }
      

  2.   

    char *a="a"这样定义的指针内容不能修改
      

  3.   

    同楼上, char* a = "a"; 并没有在堆上分配内存。而"a"是一个常量字符串是不能修改的。
    char *a = new char[10];
    a[0] = "a";
    这样才可以调用字符串连接
      

  4.   

    知道了,是这样的:
    struct Dlg_Static
    {
    char** a;
    int  b;
    };
    char* c[]=
    {"a"};
    Dlg_Static d=
    {c,
    1
    };
    这样定义是没错的
    那我这样改为什么错了呢
    struct Dlg_Static
    {
    char a[10][100];
    int  b;
    };
    char c[10][100]=
    {"a"};
    Dlg_Static d=
    {c,
    1
    };
    错误是说cannot convert from 'char [10][100]' to 'char'
    怎么会是char型的呢,struct里明明定义了char[10][100]