m0_50998276 2022-07-07 10:07 采纳率: 100%
浏览 32
已结题

申请动态内存时puts报错

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

为什么会这样,使用的是软件是 vs2022

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

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
int i;
scanf("%d", &i);
char* p;
p = (char*)malloc(i);
char c;
scanf("%c", &c);//去除缓冲区内的\n 上面一个scanf输入的是 10\n 只会读取走10 留下\n
gets(p);
puts(p);
return 0;

}

运行结果及报错内容

0x00007FFC4F88F130 (ucrtbased.dll)处(位于 Project2.exe 中)引发的异常: 0xC0000005: 写入位置 0xFFFFFFFFDD29FB00 时发生访问冲突。

我的解答思路和尝试过的方法
我想要达到的结果

学习malloc

  • 写回答

4条回答 默认 最新

  • qzjhjxj 2022-07-07 10:32
    关注

    供参考:

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int i;
        scanf("%d", &i);
        char* p;
        p = (char*)malloc(sizeof(char) * i);
        char c;
        scanf("%c", &c);//去除缓冲区内的\n 上面一个scanf输入的是 10\n 只会读取走10 留下\n
        gets(p);
        puts(p);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月15日
  • 已采纳回答 7月7日
  • 创建了问题 7月7日

悬赏问题

  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面