gpt4 book ai didi

c - C 中的基本数组用法?

转载 作者:太空狗 更新时间:2023-10-29 16:04:07 25 4
gpt4 key购买 nike

这就是你们在 ANSI-C99 中获取数组大小的方式吗?似乎有点,嗯,来自高级语言的笨拙。

int tests[7];
for (int i=0; i<sizeof(tests)/sizeof(int); i++) {
tests[i] = rand();
}

还有这个段错误。

int r = 10000000;
printf ("r: %i\n", r);
int tests[r];

运行它:

r: 10000000
Segmentation fault

10000000 个段错误,但 1000000 个有效。

如何从中获取更多信息?我应该检查什么以及如何调试这样的东西? C数组有限制吗?什么是段错误?

最佳答案

在 C 中获取数组的大小很容易。这将为您提供数组的大小(以字节为单位)。

sizeof(x)

但我猜你需要的是元素的数量,在这种情况下它将是:

sizeof(x) / sizeof(x[0])

你可以为此编写一个简单的宏:

#define NumElements(x)  (sizeof(x) / sizeof(x[0]))

例如:

int a[10];
int size_a = sizeof(a); /* size in bytes */
int numElm = NumElements(a); /* number of elements, here 10 */

关于c - C 中的基本数组用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5711638/

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