Итак, из моего понимания C, если вы хотите что-то постоянно изменить внутри функции, вы должны передать указатель в качестве аргумента.Тем не менее, у меня есть этот фрагмент кода, который добавляется к массиву структур без каких-либо указателей.
в каком-то другом файле:
extern struct data *information;
в другом файле:
struct data *information
в некоторой функции:
information = malloc(sizeof(data));
наконец рассматриваемая функция:
void function(int total, bool status){
total++;
char input[30];
printf("Please enter some input...\n>>>");
scanf(" %[^\n]s", input);
//reallocate memory to fit new element
information = realloc(information,sizeof(struct some_struct)*total);
//assign values to struct members
strcpy(information[total-1].description,input);
information[total-1].amount = total;
return;
}
Я проверил эту функцию, добавив некоторый пример и при печати она была там.Мое понимание этого неверно, или это должно произойти?