#include<stdio.h> #include<string.h> void main() { char *cry(char*p,int m); char a[50]=&
答案:1 悬赏:80 手机版
解决时间 2021-11-21 19:07
- 提问者网友:孤山下
- 2021-11-21 02:56
#include<stdio.h> #include<string.h> void main() { char *cry(char*p,int m); char a[50]="abcdefg",*s
最佳答案
- 五星知识达人网友:掌灯师
- 2021-11-21 03:31
在函数cry中,变量c是局部变量,离开函数时其占用的栈被释放,于是return的地址是无效地址。把函数原型定义为:int cry(char *str,const char *p,int m);函数内容变成:
int cry(char *c,const char*p,int m)
{
if(p==NULL)return -1;
strcpy(c,p+m-1);
return 0;
}
这样,可以用返回值判断cp是否成功,避免了段错误
int cry(char *c,const char*p,int m)
{
if(p==NULL)return -1;
strcpy(c,p+m-1);
return 0;
}
这样,可以用返回值判断cp是否成功,避免了段错误
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯