l565887 2022-03-20 17:41 采纳率: 0%
浏览 229

0x00007FFC6DE2D1E2 (ucrtbased.dll)处(位于 6.指针与动态内行申请.01486F340 时发生访问冲突。

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{

int i;//申请多大空间
scanf("%d", &i);
char* p;
p =(char*)malloc(i);//malloc申请空间的单位是字节
strcpy(p, "malloc success");
puts(p);
free(p);
return 0;
我想要达到的结果

这是为啥出错l

  • 写回答

2条回答 默认 最新

  • 九月de️云 2022-03-20 18:04
    关注

    strcpy 不会把字符串结尾的0 copy到buffer p;
    但puts函数字符串需要以0结尾,所以可能会出错
    另外可能是不是你输入的i 值太小了, 小于“malloc success"的长度?

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月20日