C语言 读取位置 0x00000064 时发生访问冲突。 怎么解决?

刘舒阳_ 2019-10-11 10:51:50
0x5C4040E3 (msvcr120d.dll) (LearnC.exe 中)处的第一机会异常: 0xC0000005: 读取位置 0x00000064 时发生访问冲突。
请问哪里出了问题?
代码:
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)

char input(char Str[128])
{
char r[256];
printf(Str);
scanf_s("%s", &r,256);
fflush(stdin);
return &r;
}

int main()
{
char a[256];
strcpy(a,input("输入一串文字。>>"));
printf(a);
return 0;
}
...全文
739 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我叫侯万楼 2019-10-12
  • 打赏
  • 举报
回复
1、char r[256]; 是栈内存,函数结束会被销毁 2、char input(char Str[128]) 返回的是char,我猜你想返回char*
赵4老师 2019-10-12
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
自信男孩 2019-10-12
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)

//char input(char Str[128])
char *input(char Str[128])
{
//char r[256];
static char r[256];
printf(Str);
//scanf_s("%s", &r,256);
scanf_s("%s", r, 256);
fflush(stdin);
//return &r;
return r;
}

int main()
{
char a[256];
strcpy(a, input("输入一串文字。>>"));
printf(a);
return 0;
}


供参考~
dongge1000 2019-10-12
  • 打赏
  • 举报
回复
input函数写利有问题

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧