【发布时间】:2016-01-21 14:41:07
【问题描述】:
如果我尝试输入序列中的第 50 个数字,它会显示到第 46 个,然后生成随机数,但是当我计算两个字符中的字符时,我发现它们都等于 10,那么为什么它恰好停在 46?
我的代码:
void calculating_f(int val){
int aray[100] = {0,1};
int i;
printf("%i %i ", aray[0], aray[1]);
for (i=2; i < val; i++){
aray[i] = aray[i - 2] + aray[i - 1];
printf("%i ", aray[i]);
}
}
【问题讨论】:
-
val的值是多少? -
显示更多代码,尤其是如何调用该函数。
-
此时值对于 32 位
int来说太大了 - 请考虑改用uint64_t。 -
请尝试创建一个Minimal, Complete, and Verifiable Example 并向我们展示,并包含该程序的实际和预期输出。
-
如保罗所说:使用更大的整数类型(例如
long):here's an example that you can run online
标签: c arrays memory out-of-memory limit