C语言错误 代码如下 #include<stdio.h> #include<string.h> int main(int argc,char **a...

2024-11-17 12:46:44
推荐回答(4个)
回答1:

Segmentation fault这句话的意思就是段错误,就是内存泄漏了,strcpy(&a.b[5],argv[1])这句话的意思就是把argv[1]拷贝到结构体a中的b字段的最后一个字符,而字符串的最后编译器都会加上'\0',你把argv[1]拷过去了,占用了'\0'的位置,当然会报段错啊.不理解的,可以继续追问.纯手打,望采纳!

回答2:

#include
#include
int main(int argc,char **argv)
{
struct test{ char b[5];};
struct test a;
strcpy(&a.b,argv[1]); //strcpy第一个参数为宜字符串指针,指向有确定大小的字符数组
puts(&a.b[5]);
return 0;
}

回答3:

&a.b[5]这个是错的,改为a.b就成!!

回答4:

#include #include int main(int argc,char **argv){ struct test{ char b[1024];}; struct test a; strcpy(&a.b[0],argv[1]); puts(&a.b[0]); return 0;}