gpt4 book ai didi

c - 我的数组有多大?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:02 25 4
gpt4 key购买 nike

因此,鉴于以下情况:

#include <stdio.h>
int * getarr();
int main(int argc, char* argv)
{
int * arr = getarr();
printf("%d", sizeof(arr));
}

int* getarr()
{
static int a[4] = {0,1,0,3};
return a;
}

如何找到arr的长度? arr[4] == 0,但 arr[0]arr[2] 也是如此。

如果这是一个 char*,答案将是 iterate until '\0',但这似乎在这里不起作用,因为 '\0 ' == 0

寻址 arr[5] 似乎始终会导致值 > 163 - 1(我系统上 int 的大小),但事实并非如此这似乎是一种可靠的衡量标准,因为它让我印象深刻,因为它只是内存中的一个空位置。

有没有办法一致地检索这个值?还是只需要传入?

最佳答案

当您在 main() 函数中时,您无法检索数组的长度。当 int[4] 被转换为由 getarr()

返回的 int * 时,此信息已丢失

关于c - 我的数组有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336547/

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