Toimintaperiaate olisi jotakuinkin tämä:
#include "ali.h" #include <string> //proto void TaytaTaulukko(joku_taulukon_nimi[][]); int main(){ string taulukko[20][20]; TaytaTaulukko(taulukko); //tässä käytetään täytettyä taulukkoa jotenkin }
//ali.h void TaytaTaulukko(taulukko[][]){ //tässä täytetään taulukko jollakin }
Annan siis vain taulukon osoitteen aliohjelmalle. Aliohjelman pitäisi täyttää osoitteessa oleva taulukko. Tästä seuraa kuitenkin vain erroria...
Mikä voi olla vikana?
Mä oon ihan C-miehiä, mutta meillä kantsii käyttää tämmöistä asetelmaa:
void jee(char taulu[20][20]) { printf("keke\n"); } int main(void) { char taulu[20][20]; jee(taulu); return 0; }
Ensimmäistä kertaa muutenkin tuli vastaan stringitaulukko, jotka saattavat käyttäytyä hieman erilailla charriin verrattuna.
Funktio ei tiedä tarpeeksi taulukon koosta. Jos jälkimmäinen ulottuvuus ei ole tiedossa, ei kääntäjä voi mitenkään luoda koodia, joka osaa viitata oikeaan muistipaikkaan taulukkoa käyttäessä. Siksi C-kielen määritelmä vaatii, että parametrinä olevassa taulukossa saa jättää vain ensimmäisen ulottuvuuden antamatta.
Tässä koodivinkki, joka pelastanee turhautumiselta asian kanssa.
https://www.ohjelmointiputka.net/koodivinkit/
Aihe on jo aika vanha, joten et voi enää vastata siihen.