Как передать массив структур для функционирования на c

#c #function #c 11 #shared-ptr

#c #массивы

Вопрос:

Мне нужно передать массив структур функции, и я делаю это таким образом:
это моя функция

 void ShowRoutes(Route *routeList, int n, string title) { //... }
  

и это вызов функции

 ShowRoutes(routeList, n, "Unsorted list: ");
  

но я хотел бы знать, существуют ли другие способы передачи массива структур для функционирования?

Комментарии:

1. Я бы рекомендовал std::array или std::vector , в зависимости от того, когда вы знаете размер.

2. Я только начал изучать C , я не знаю, std::array или std::vector пока.

3. Обычно с ними легче иметь дело, чем с обычными массивами (и особенно с динамическими массивами). Они являются достойным вложением.

4. Если вы только начали, вы можете также изучить некоторые хорошие практики сейчас. Это стоит потраченного времени.

5. Вместо того, чтобы передавать данные, инкапсулируйте их и выполняйте операции над ними.

Ответ №1:

Я знаю два способа передачи массивов функциям.

То, как у вас это есть:

 void ShowRoutes(Route *routeList, int n, string title) { //... }
  

или

 void ShowRoutes(Route routeList[], int n, string title) { //... }
  

В любом случае, вы напишете функцию, вы все равно будете вызывать ее одинаково:

 ShowRoutes(routeList, n, "Unsorted list: ");
  

Но, как упоминали другие, было бы неплохо изучить std::array и std::vector.