Problem z przekazywaniem 2wymiarowej tablicy

0

mam w programie głównym zadeklarowana i uzupełnioną tablicę i chciałbym ja przekazywać dalej do funkcji i celu dalszych operacji na niej. niestety nie chce mi to nadal działać, nie wiem gdzie robię błąd - w internecie już nic nie mogłem znaleźć.
Co do tablic dynamicznych to nie wiem jak sie za to zabrać ;/ help

 void licz (int tablica);
#include<conio.h>>
#include<iostream>
main()
{
int tab [3][7] ={
{0,6,12,12,12,15,20},
{0,5,8,11,14,17,18},
{0,4,15,15,15,15,16 } };    
licz(tab[3][7]); //czy tu musi byc zawsze 3 i 7 ten rozmiar?
getch();
}

void licz(int tablica)
{
 std::cout <<tablica[1][1]; //wywala błąd przy samym wyswietlaniu a co dopiero przy np dodawaniu ;/
}
0

Jaką masz wersję internetu? W mojej jest dużo rzeczy na ten temat.
http://www.chelpdesk.pun.pl/viewtopic.php?id=22
http://cpp0x.pl/forum/temat/?id=4684


// #include<conio.h> to zło, nie używaj
#include<iostream>

using namespace std;

void licz(int tablica[][7], int rozmiar);

int main() //ma być int na poczatku
{
    int tab [3][7] ={
                    {0,6,12,12,12,15,20},
                    {0,5,8,11,14,17,18},
                    {0,4,15,15,15,15,16 }
                    };
    licz(tab, 3);
    cin.ignore();
    cin.get();
    //zamiast getch();
    return 0; //w debrym guście jest zwrócić zero, chociaż nie trzeba
}

void licz(int tablica[][7], int rozmiar)
{
    int suma=0;
    for(int i=0;i<rozmiar;i++)
    {
        for(int j=0; j<7;j++)
            suma+=tablica[i][j];
    }
    cout <<suma;
}
0

Jednak radzę, użyć tablicy dynamicznej.

#include <cstdio>

void licz(int **tablica);

int main()
{
    int **tab = new int *[3];
    for (int i = 0; i < 3; ++i)
        tab[i] = new int [7];

    tab[1][1] = 1;

    licz(tab);  

    return 0;
}

void licz(int **tablica)
{
    printf("%d", tablica[1][1]);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0