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

Przesyłanie dwuwymiarowej tablicy do funkcji i zmiana wartości jej elementów

Ostatnio zmodyfikowano 2014-03-04 16:15
Autor Wiadomość
mikolec
Temat założony przez niniejszego użytkownika
Przesyłanie dwuwymiarowej tablicy do funkcji i zmiana wartości jej elementów
» 2014-03-04 16:08:44
Witam wszystkich. Chciałbym się dowiedzieć dlaczego po przesłaniu do funkcji dwuwymiarowej tablicy z użyciem wskaźników nie zostają zachowane zmiany przeprowadzone wewnątrz funkcji na elementach tej tablicy. Wyświetlanie elementów tej tablicy poza funkcją daje wartości 0. Program bez problemu się kompiluje.
C/C++
#include <iostream>
#include <fstream>
using namespace std;


void load_graph( ifstream & input, int ** arr, int jobs, int machs )
{
    for( int i = 0; i < jobs; i++ )
    {
        for( int j = 0; j < machs; j++ )
             input >> arr[ jobs ][ machs ];
       
    }
}

int main()
{
    ifstream file( "data.txt", fstream::in );
    if( file.is_open() )
    {
        int mach_num = 0;
        file >> mach_num;
        int ** jobs = new int *[ mach_num ];
       
        int jobs_num = 0;
        file >> jobs_num;
        for( int i = 0; i < jobs_num; i++ )
        {
            jobs[ i ] = new int[ jobs_num ];
        }
       
        load_graph( file, jobs, mach_num, jobs_num );
        cout << jobs[ 2 ][ 2 ]; // wartosc 0
        cout << jobs[ 3 ][ 1 ]; // wartosc 0
    }
    else
    {
        cerr << "Error opening file";
    }
    return 0;
}
P-105624
Monika90
» 2014-03-04 16:11:05
C/C++
input >> arr[ jobs ][ machs ];
Wszystkie wartości wczytujesz do tej samej komórki, na dodatek poza zakresem tablicy
P-105625
mikolec
Temat założony przez niniejszego użytkownika
Dzięki Monika
» 2014-03-04 16:15:44
chyba dzisiaj za krótko spałem : )
P-105626
« 1 »
  Strona 1 z 1