дайте определяемые пользователем параметры в функции 2d-массива в C

#c #function #multidimensional-array

Вопрос:

void dijkstra(int V, int graph[V][V],int a,int b,строковый город[]) Ошибка в параметре 2D массива

 #include lt;bits/stdc  .hgt; using namespace std;  int minValueIndex(vectorlt;intgt;amp; value, vectorlt;boolgt;amp; processed, int V) {  int minimum = INT_MAX;  int ver;  for (int i = 0; i lt; V;   i) {  if (processed[i] == false amp;amp; value[i] lt; minimum) {  ver = i;  minimum = value[I];  }  }  return ver; }  void dijkstra(int V, int graph[][V], int a, int b, string city[]) {  int parent[V];  vectorlt;intgt; value(V, INT_MAX);  vectorlt;boolgt; processed(V, false);  int src = a, d = b;  parent[src] = -1;  value[src] = 0;  for (int i = 0; i lt; V - 1;   i) {  int index = minValueIndex(value, processed, V); //selectMinIndex  processed[index] = true;  for (int j = 0; j lt; V;   j) {  if (graph[index][j] != 0 amp;amp; processed[j] == false amp;amp; value[index] != INT_MAX  amp;amp; (value[index]   graph[index][j] lt; value[j]))  {  value[j] = value[index]   graph[index][j];  parent[j] = index;  }  }  }  string arr[V];  int temp = d;  int count = 0;  while (d != src) {  arr[count] = city[parent[d]];  d = parent[d];  count  ;  }  for (int i = count - 1; i gt;= 0; i--)  cout lt;lt; arr[i] lt;lt; "-gt;";  cout lt;lt; city[temp];  cout lt;lt; endl;  cout lt;lt; "Happy Journey!!n"; }  int main() {  int V;  cout lt;lt; "Enter Total Citiesn";  cin gt;gt; V;  string city[V];  cout lt;lt; "Enter Citiesn";  for (int i = 0; i lt; V; i  )  cin gt;gt; city[i];  cout lt;lt; "Distance Matrix" lt;lt; endl;  int graph[V][V];  for (int i = 0; i lt; V; i  )  for (int j = 0; j lt; V; j  )  cin gt;gt; graph[i][j];  cout lt;lt; "Enter Sourcen";  string src, des;  int a, b;  cin gt;gt; src;  cout lt;lt; "Enter Destinationn";  cin gt;gt; des;  for (int i = 0; i lt; V; i  ) {  if (city[i] == src)  a = i;  if (city[i] == des)  b = i;  }  dijkstra(V, graph, a, b, city);  return 0; }  

Как передать определяемые пользователем параметры в 2D-массиве?? Я попытался передать пользовательский параметр, но я получаю эту ошибку, есть любой другой доступный метод для передачи пользовательского параметра в массиве 2S

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

1. Массивы переменной длины (VLA) — это функция C99, не поддерживаемая C . Ваши первые функции, похоже, хорошо работают с вектором std::, так почему бы не попробовать это и во втором случае? Вы можете сделать vectorlt;vectorlt;intgt;gt; это, чтобы получить более одного измерения.

2. Хорошо, я постараюсь…