U2yyy 2022-08-12 20:48 采纳率: 71.4%
浏览 24

我的length会在程序运行中无缘无故改变值

一个奇怪的问题

我的length会在程序运行中无缘无故改变值

下面是问题代码

`#include<stdio.h>

#include<windows.h>

void HeapAdjust(int *a,int s,int length);

void swap(int *a,int m,int n);

int main(){

int a[] = {99,19,2,98,103,3,9,20,78,201,88,9,23,46,77,59,67,69,75,38};

/* 这里的length似乎不用const的话就会发生错误,bug? */

int length = sizeof(a)/sizeof(a[0]);

for(int i=length/2;i>=0;i--)

{

​ HeapAdjust(a,i,length);

}

for(int i=length;i>0;i--)

{

​ swap(a,0,i-1);

​ HeapAdjust(a,0,i-2);

}

/* Show the result of Heap_sort */

for(int i=0;i<length;i++)

{

​ printf("%d ",a[i]);

}

system("pause");

}

void HeapAdjust(int *a,int s,int length)

{

int temp = a[s];

for(int j=s2;j<=length;j=2)

{

​ if(j<length&&a[j+1]>a[j])

​ j++;

​ if(temp>=a[j])

​ break;

​ a[s] = a[j];

​ s = j;

}

a[s] = temp;

}

void swap(int *a,int m,int n)

{

int temp = a[m];

a[m] = a[n];

a[n] = temp;

}`

在我的计算机上,如果不加const,length会变成3,但是加了const又不会如此,这是什么原因?

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-08-12 20:52
    关注

    执行到哪一行的时候你发现变为3的呢?

    评论

报告相同问题?

问题事件

  • 创建了问题 8月12日

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计