Truyền mảng vào chương trình con trong c++

Cho mình hỏi cách truyền mảng vào chương trình con của mình sau đây có gì sai ?
Nó cứ báo lỗi chỗ void

#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int>in;
typedef pair<int,int>icq;
vector <in> a[1005];
vector <icq> b[1005];
int n,m,k,q,p,w1,w2,oo=1000000,i;
int fre[1005],d[1005],trace[10005],d1[10005];
void Dijkstra(int s,int f,int d[],int x[][]){
    int i, u,v, du,uv, Min;
    for (i=1; i<=n; i++) d[i] = oo;
    d[s] = 0;
    for(i=1;i<=n;i++) fre[i]=0;
    do{
        u = 0; Min = oo;
        for(i=1;i<=n;i++) 
           if(fre[i]==0&&d[i]<Min)
            {
                Min = d[i];
                u = i;
            }

        if(u==0 || u==f) break; 
        fre[u]=1; 
        for(int i=0; i < x[u].size();i++)
        {
            v = x[u][i].second;
            uv = x[u][i].first;
            if(fre[v]==0&&d[v]> d[u]+ uv)
            {
                d[v] = d[u]+uv;
                trace[v]=u;
            }
        }
    } while(true);
}
int main()
{
    cin>>n>>m>>k;
    for(i=1;i<=n;i++)
    {
        cin>>p>>q>>w1>>w2;
        a[p].push_back(in(w1,q));
        a[q].push_back(icq(w1,p));
        b[p].push_back(in(w1,q));
        b[q].push_back(icq(w2,p));
    }
    memset(fre,0,sizeof(fre));
    Dijkstra(1,k,d1,a);
}
//...
vector <in> a[1005];
//...
void Dijkstra(int s,int f,int d[],int x[][])
//...
Dijkstra(1,k,d1,a);
//...

avector, truyền vào hàm nhận mảng 2 chiều, liệu có ổn?!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?