gpt4 book ai didi

C : Accessing contiguous array elements using a pointer returned by a function

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:00 24 4
gpt4 key购买 nike

在下面的程序中,我得到了输出1个00213056716811268666872686916

而根据我的说法,输出必须是1个2个3个4个5个6个78

因为数组元素存储在连续的内存位置,我正在以连续的方式访问这些元素。

#include<stdio.h>
#include<stdlib.h>

int *fun3();

int main(){
int j, k;
int *q = fun3();
for(j = 0; j < 8; j++){
printf("%d\t", *(q+j));
}
}

int *fun3(){
int a[] = {1,2,3,4,5,6,7,8};
return a;
}

请提出我的代码或推理中的任何问题。为什么我会出现这种异常行为?

最佳答案

数组a 具有自动存储持续时间,当函数fun3() 返回时结束。这意味着在此之后访问它是不合法的 - 这样做具有未定义的行为,这意味着任何事情都可能发生。

关于C : Accessing contiguous array elements using a pointer returned by a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17134261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com