| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1823 人关注过本帖
标题:为什么会内存溢出???
只看楼主 加入收藏
zhaojun222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-7-9
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
为什么会内存溢出???
#include<stdio.h>
int main()
{
 int b,i,m,j;
printf("how many numbers?\n");
scanf("%d" ,&m);
int a[m];
for(i=0;i<m;i++)
  scanf("%d" ,&a[i]);
  for(j=0;j<(m-2);j++)
  for(i=0;i<(m-j);i++)
  if(a[i+1]<a[i])
{
 b=a[i+1];
  a[i+1]=a[i];
  a[i]=b;
 }
 printf("\n");
  for(i=0;i<m;i++)
 printf("%d<" , a[i]);
}
这是运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2018-12-3 17:16编辑过]

搜索更多相关主题的帖子: 内存 int printf for i++ 
2018-12-03 17:09
番茄榴莲酱
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2018-11-29
收藏
得分:7 
我溢出了都是用的scanf_s
用的这样(我也是新手哟)
2018-12-03 17:15
zhaojun222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-7-9
收藏
得分:0 
回复 2楼 番茄榴莲酱
scanf_s不是vs独有的吗?我用的是其他编译器。原因应该不是你说的这个
2018-12-03 17:29
dpj149
Rank: 2
等 级:论坛游民
帖 子:14
专家分:28
注 册:2018-2-9
收藏
得分:7 
你编译器支持变长数组吗? int a[m];//正常的数组下标不可以使用变量的
2018-12-03 18:42
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:7 
  for(i=0;i<(m-j);i++)

j从0开始
第一次执行内层循环的时候 j的值是0
i<m-0
循环内部 i最大值是m-1
后面
 if(a[i+1]<a[i])

a[i+1] 会出现越界
所以错了

https://zh.
2018-12-03 18:43
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用dpj149在2018-12-3 18:42:29的发言:

你编译器支持变长数组吗? int a[m];//正常的数组下标不可以使用变量的

都已经编译运行了
这个问题应该可以不考虑了

https://zh.
2018-12-03 18:44
dpj149
Rank: 2
等 级:论坛游民
帖 子:14
专家分:28
注 册:2018-2-9
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
#define LEN 10
int main()
{
    int b=0, i, j;
    int a[LEN] = {1,4,5,1,6,9,10,30,11,44};
    for (j = 1; j < LEN; j++)
    {
        for (i = 0; i < (LEN - j); i++)
        {
            if (a[i + 1]<a[i])
            {
                b = a[i + 1];
                a[i + 1] = a[i];
                a[i] = b;
            }
        }
    }
    for (i = 0; i < LEN; i++)
    {
        printf("%d<", a[i]);
    }
    printf("\n");

    system("pause");
    return 0;
}

[此贴子已经被作者于2018-12-3 20:05编辑过]

2018-12-03 19:27
快速回复:为什么会内存溢出???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016307 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved