#include <stdio.h>
#include <string.h>
struct sample
{
int a, b;
char*ch;
};
void fl(struct sample p)
{
p.a += p.b;
p.ch[2] = 'x';
printf("%d,", p.a);
printf("%s\n", p.ch);
}
int main()
{
struct sample samp;
samp.a = 1000;
samp.b = 100;
strcpy(samp.ch, "abcd");
fl(samp);
return 0;
}
报错:samp未初始化。
修改见注释,供参考:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct sample
{
int a, b;
char*ch;
};
void fl(struct sample p)
{
p.a += p.b;
p.ch[2] = 'x';
printf("%d,", p.a);
printf("%s\n", p.ch);
}
int main()
{
struct sample samp;
samp.a = 1000;
samp.b = 100;
samp.ch = (char*)malloc(32);//修改 ,需要给*ch申请一块空间
strcpy(samp.ch, "abcd");
fl(samp);
return 0;
}