Функция продолжает работу после return - C (СИ)
Формулировка задачи:
Скажите, пожалуйста, почему эта штука упорно возвращает -1, при этом заполняя массив? КАК?! Как он делает return -1 и после с чистой совестью идет дальше?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int InputArr(const char *fileName, int **arr, int *n){
FILE *objFile = NULL;
*arr = NULL;
objFile = fopen(fileName, "r");
if (objFile == NULL){
return -1;
}
int t = 0;
for(*n = 0; fscanf(objFile,"%d", &t) == 1; (*n)++);
fclose(objFile);
if(*n != 0){
objFile = fopen(fileName, "r");
*arr = (int*)malloc((*n) * sizeof(int));
for (*n = 0; fscanf(objFile,"%d",(*arr) + (*n)) == 1; (*n)++);
fclose(objFile);
}
return 1;
}Решение задачи: «Функция продолжает работу после return»
textual
Листинг программы
if(err = -1) * * * * return -1;