Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wskażnik do tablicy 2D jako argument funkcji

Ostatnio zmodyfikowano 2018-02-26 17:11
Autor Wiadomość
lukasz427
Temat założony przez niniejszego użytkownika
Wskażnik do tablicy 2D jako argument funkcji
» 2018-02-26 16:34:39
Cześć,

Od razu przejdę do rzeczy.

Mam taki b. krótki kod:
C/C++
#include <iostream>
using namespace std;

int tab[ 2 ][ 5 ] { }; // tablica zinicjalizowana zerami

//*****************************************************
void fun( int( * wsk )[ 5 ] )
{
   
    cout <<( * wsk );
   
}

//****************************************************

int main()
{
   
    fun( tab );
}

Tablice odbieram jako wskażnik. Po wywołaniu funkcji  nie jest wyświetlane zero jako wartość pierwszego argumentu tablicy(czego oczekuję) tylko jakaś  liczba (chyba adres).Kombinowałem na różne sposoby z odebraniem tej tablicy z argumentem  formalnym ale tylko tak udało mi się poprawnie napisać kod aby program został skompilowany bez błędu. Jak to napisać aby wyświetlić te zera,które są wartościami poszczególnych elementów tej tablicy. Zmienić argument formalny na inny wskażnik czy może ciało funkcji?

Dodam, że jeśli wszystko zamienię tak aby odebrać tablice jako tablice w funkcji wszystko jest w porządku.
Z góry dziękuję.
P-169620
nanoant20
» 2018-02-26 16:54:57
body fun
C/C++
for( int i = 0; i < 2; i++ )
{
    for( int j = 0; j < 5; j++ )
    {
        cout << *( *( wsk + i ) + j ) << " ";
    }
    cout << endl;
}
@EDIT
zrobiłbym to inaczej
C/C++
void fun( int * tab )
{
    for( int i = 0; i < 2; i++ )
    {
        for( int j = 0; j < 5; j++ )
        {
            cout << *(( tab + i ) + j ) << " ";
        }
        cout << endl;
    }
}

int main()
{
   
    int tab[ 2 ][ 5 ] { }; //wymaga ustawienia flagi -std=c++11
    int * wsk;
    wsk = & tab[ 0 ][ 0 ];
    fun( wsk );
    cout << endl;
    return 0;
}
P-169621
lukasz427
Temat założony przez niniejszego użytkownika
» 2018-02-26 17:11:19
Dziękuję. Zamykam temat.
P-169623
« 1 »
  Strona 1 z 1