m0_52004318 2021-09-12 16:25 采纳率: 100%
浏览 1554
已结题

c++从“p”中读取的数据无效: 可读大小为“n*4”个字节,但可能读取了“n”个字节

问题 :从“p”中读取的数据无效: 可读大小为“n*4”个字节,但可能读取了“n”个字节
代码
#include
using namespace std;
int main()
{
int *p;
int m, n, i ,date;
int d=0;
cin >> n;
p = new int[n];
while (d < n)
{
cin >> i;
p[d] = i;
d++;
}
for (m = 0; m < n; m++)
{
for (i =m + 1; i < n; i++)
{
if (p[i] < p[m])
{
date = p[m];
p[m] = p[n];
p[n] = date;
}
}
}
for (m = 0; m < n; m++)
cout << p[m] <<" ";
}

img

  • 写回答

2条回答 默认 最新

  • 关注

    img


    这里下标写错了
    有帮助望采纳
    你的两层循环分别用的是 mi ,但是赋值用的是 mn
    修改为

    #include <iostream>
    using namespace std;
    int main()
    {
        int *p;
        int m, n, i, date;
        int d = 0;
        cin >> n;
        p = new int[n];
        while (d < n)
        {
            cin >> i;
            p[d] = i;
            d++;
        }
    
        for (m = 0; m < n; m++)
        {
            for (i = m + 1; i < n; i++)
            {
                if (p[i] < p[m])
                {
                    date = p[m];//改为正确下标取用
                    p[m] = p[i];
                    p[i] = date;
                }
            }
        }
        for (m = 0; m < n; m++)
            cout << p[m] << " ";
    }
    

    即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改