#include <stdio.h> #include <stdlib.h> struct Student { int age; }; void Get_datas(Student *arr, int size) { for (int i = 0; i < size; i++) { scanf_s("%d", arr[i].age); } } int main() { Student* arr = (Student*)malloc(3 * sizeof(Student)); Get_datas(arr, 3); free(arr); return 0; } Нужно чтобы динамический массив заполнялся в отдельной функции. Но он не заполняется
#include <stdio.h> #include <stdlib.h> struct Student { int age; }; void Get_datas(Student *arr, int size) { for (int i = 0; i < size; i++) { scanf_s("%d", &arr[i]->age); } } int main() { Student* arr = (Student*)malloc(3 * sizeof(Student)); Get_datas(arr, 3); // Выводим значения возраста студентов for (int i = 0; i < 3; i++) { printf("Возраст студента %d: %d\n", i + 1, arr[i]->age); } free(arr); return 0; } C #include <stdio.h> #include <stdlib.h> struct Student { int age; }; void Get_datas(Student *arr, int size) { for (int i = 0; i < size; i++) { scanf_s("%d", &arr[i]->age); } } int main() { Student* arr = (Student*)malloc(3 * sizeof(Student)); Get_datas(arr, 3); // Выводим значения возраста студентов for (int i = 0; i < 3; i++) { printf("Возраст студента %d: %d\n", i + 1, arr[i]->age); } free(arr); return 0; } Попробуй
#include <iostream> #include <vector> using namespace std; // функция void fillArray(vector<int> &arr); int main() { // динамический массив с начальным размером 5 vector<int> myArray(5); // Вызов функцию fillArray, чтобы заполнить массив значениями. fillArray(myArray); // Вывести значения массива for (int i : myArray) cout << i << " "; return 0; } // Описание функции void fillArray(vector<int> &arr) { // Заполнить массив значениями for (int i = 0; i < arr.size(); i++) arr[i] = i + 1; } C #include <iostream> #include <vector> using namespace std; // функция void fillArray(vector<int> &arr); int main() { // динамический массив с начальным размером 5 vector<int> myArray(5); // Вызов функцию fillArray, чтобы заполнить массив значениями. fillArray(myArray); // Вывести значения массива for (int i : myArray) cout << i << " "; return 0; } // Описание функции void fillArray(vector<int> &arr) { // Заполнить массив значениями for (int i = 0; i < arr.size(); i++) arr[i] = i + 1; }
функция fillArray принимает ссылку на векторный объект в качестве аргумента и заполняет его значениями. Векторный объект передается по ссылке, поэтому любые изменения, внесенные в него внутри функции, отражаются в исходном объекте