Как динамически заполнить массив последовательностью Фибоначчи - PullRequest
0 голосов
/ 01 декабря 2018

Мой вопрос касается динамического выделения памяти и арифметики указателей. У меня есть функция, которая вызывается в главной функции, и она должна заполнить массив n длинными значениями и динамически заполнить их последовательностью Фибоначчи.моя функция ниже, но она не дает правильного вывода.

long* make_fib_array(long n){

int i;
long *fib;  
fib = (long*)malloc(sizeof(long)*n);
if (fib == NULL){
    printf("ERROR: Out of memory\n");
return NULL;}


*fib = 0;
*(fib +1) = 1;
for (i=2;i<n;i++);{
    *(fib +i) = *(fib + (i-1)) + *(fib + (i-2));}     

for(i=0;i<n;i++){
    printf("%ld\n",*(fib + i));}


return fib;}

, используя значения значений 0 и 1, печатайте нормально, но значения после этого очень большие и не ожидаемые.Я подозреваю, что это что-то делать с моей арифметикой указателя, но я не уверен, что это такое.

1 Ответ

0 голосов
/ 01 декабря 2018

Просто удалите ; после для скобок:

От

for (i=2;i<n;i++);{

до

for (i=2;i<n;i++) {
...