C++怎么利用指针给结构体的字符数组赋值

2025-02-23 17:51:59
推荐回答(2个)
回答1:

#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);应该就可以了...这样就是让头指针指向的数组复制给当前的数组

回答2:

你不能将 一个未知长度的字符串首地址 指定给 一个已知字符串长度的首地址