#include
#include
struct A;
typedef A* point;
struct A{
char ch[30];
};
int main(){
A s1,s2,s3;
point p1=&s1,p2=&s2,p3=&s3;
char Ch[30]="Hello world";
for(int i=0;i<30;i++) //其实就和一般的数组一样...在数组前加一个指针就行了...
p1->ch[i]=Ch[i];
printf("%s\n",p1->ch);
strcpy(p2->ch,Ch);
printf("%s\n",p2->ch);
scanf("%s",p3->ch);
printf("%s\n",p3->ch);
return 0;
}
错误的原因是:不能让一个数组等于一个头指针....改成strcpy(p->name,a);应该就可以了...这样就是让头指针指向的数组复制给当前的数组
你不能将 一个未知长度的字符串首地址 指定给 一个已知字符串长度的首地址