我写的一端代码:  
mian()  
{  
       char  *p[2]={'\0'};  
       char  *s="asdf";  
       strcpy(p[0]  ,s);  
}  
可是为什么p[0]的内容依然是NULL。  
但是写成这样也不对。  
mian()  
{  
       char  *p[2]={"",""};  
       char  *s="asdf";  
       strcpy(p[0]  ,s);  
}  
这样的话p[0]="asdf",p[1]="sdf";  
这是为什么呢??  
 
 

解决方案 »

  1.   

    strcpy(p[0]  ,s);  //意思是让s的地址和p[0]的地址指向同一个地址,即"asdf"的初始地址,当然p[0]  ,s指向的是同一个东西了
      

  2.   

    楼上的说错了
    strcpy(p[0]  ,s);  不是让两个指针指向同一地址,而是将第二个地址的内容拷到第一个地址中去。
      

  3.   

    那样的话我如何将一个char*型的内容拷贝到一个char *数组中的一个中去呢?并且在这个char*型变量的内容改变的时候这个数组的内容不变。(不能使用strdup函数)