Написал простейшую функцию, которая должна выводить на экран числа Фибоначчи. Но вот незадача - на экране месиво из непонятных чисел:
1644904672
1238694641
-1411367983
-172673342
-1584041325
-1756714667
954211304
-802503363
151707941
-650795422
-499087481
-1149882903
-1648970384
1496114009
-152856375
Ошибка сегментирования (стек памяти сброшен на диск)
Пошустрив в интернетах нашел информацию, что при компилировании нужно выставлять ключ -fno-stack-protector
но это, к сожалению, не помогло. Код ниже:
void fib() {
int a[n];
a[0] = 0;
a[1] = 1;
for (int i = 2; i <= n; i++) {
a[i] = a[i-1] + a[i-2];
cout << a[i] << endl;
}
}
#include <gmp.h>
#include <malloc.h>
int main() {
mpz_t *a;
int count = 10000, bits = 6912, i;
a = (mpz_t*)malloc(count *sizeof(mpz_t));
mpz_array_init(*a, count, bits);
mpz_set_ui(a[0],0);
mpz_set_ui(a[1],1);
for(i = 2; i < count; ++i) {
mpz_add(a[i], a[i-1], a[i-2]);
gmp_printf("%Zd\n", a[i]);
}
}