SXUstudent 2020-05-10 11:28 采纳率: 57.1%
浏览 178
已采纳

调用子函数返回的数组为什么会出现这样的数?这些数是地址吗?

我试过把子函数化作主函数,定义好输入数组并输出g[],是没有问题的,运行结果为1 0 0 0 1 0 0 0,不像这种返回是特别大的数


#include<stdio.h>
#define N 8
#define M 63
int *SCHS(int f[]){

    int i,g[N];
    for(i=0;i<N;i++)
    {
        if(f[i]==1)
            g[i]=i;
        else
            g[i]=0;
    }
    for(i=0;i<N;i++)
        g[i]=g[i]+f[i];

    for(i=0;i<N;i++)
    {
        if(g[i]%2)
            g[i]=1;
        else
            g[i]=0;
    }
    return g;
}

    void main(){
        int *a,*b;
        int f1[8]={1,0,0,0,1,0,0,1};
            a=SCHS(f1);
            printf("\n");
        for(int i=0;i<N;i++)
        {
        printf("%d ",a[i]);
        }
        printf("\n");//
        while(1);
    }

这是运行结果,很奇怪
![Valid XHTML]图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-10 11:31
    关注

    这些不是地址,而是因为数组越界了,或者没有初始化,访问到了随机的数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 3月28日

悬赏问题

  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?