Я пытаюсь динамически увеличить память массива int
. Однако у меня возникают проблемы с его работой. Он не расширяется и не добавляет больше элементов в массив, я не уверен, что я делаю неправильно. Пожалуйста, помогите!C realloc use
int* fibs = NULL;
void genFibs(){
int i = 1,curSize = 0,curNum = 0;
int flag = 1;
while(flag){
if(curSize != 0 &&curSize != 1){
curNum = fibs[curSize-2]+fibs[curSize-1];
}else if(curSize-1 == 1){
curNum = fibs[curSize-1]+fibs[curSize-1];
}else{
curNum = 1;
}
if(curNum<=10){
curSize++;
fibs = (int*)realloc(fibs,curSize*sizeof(int));
fibs[curSize-1] = curSize;
}else{
flag = 0;
}
}
}
}
void printFibs(){
int size = sizeof(fibs)/sizeof(int);
int i = 0;
for(i = 0;i<size;i++){
printf("%d is: %d\n",i,fibs[i]);
}
}
Вы выделили память для 'fibs', используя' malloc() 'или' calloc() 'перед' realloc() '? А какая именно ошибка? –
Предназначен ли бесконечный цикл? – Xaqq
нет этой функции, которая просто хочет генерировать массив fibs. –