Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kaksiulotteinen taulukko aliohjelmalle? (C++)

Jeppejl [14.12.2007 13:39:46]

#

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?

tgunner [14.12.2007 14:03:01]

#

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.

Pekka Karjalainen [14.12.2007 15:04:44]

#

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/24962-cpp-dynaamiset-taulukot

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta