是C吧。
第5行是数组赋值,不要带[3],string[3]仅表示第3个元素,string才表示整个数组。
况且string[3]已经越界了。
你贴的那段BCB代码是声明和赋值同时,所以可以,也就是说:
正确一:int a[3] = {1,2,3}
正确二:int a[3]; a[0]=1; a[1]=2; a[2]=3;
错误  :int a[3]; a[3]={1,2,3}
废话这么多,可以给分了吧:)

解决方案 »

  1.   

    string[3]={a1,a2,a3}是什么?
    什么也不是。
    string a[3]={a1,a2,a3}才对吧!
      

  2.   

    这是c的语法问题,在c语言中数组是可以初始化的,但要在定义的时候就初始化。
    所以你的第5行应该是
    char *string[3]={a1,a2,a3};
    而且注意前面不要定义char **string;
      

  3.   

    还有数组,在没有重载=的时候,是不可能出现
    string={a1,a2,a3};
    这种付值语句的,这不是合法的语句。string[3]={a1,a2,a3};就更是一个错误,同意ab。
      

  4.   

    奇怪这个问题怎么会在DELPHI中!  char a1[]="dfjaksd";
      char a2[]="oiop";   
      char a3[]="ocidjf"; 
      char string[]={a1,a2,a3};
    这样应该也是可以的!
      

  5.   

    奇怪这个问题怎么会在DELPHI中!  char a1[]="dfjaksd";
      char a2[]="oiop";  
      char a3[]="ocidjf"; 
      char string[][]={a1,a2,a3};
    这样应该也是可以的!
     sorry! 少了一个[]