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

Przekroczony limit pamięci - sygnał 6 (przy działaniu na dynamicznych tablicach)

Ostatnio zmodyfikowano 2010-11-24 18:48
Autor Wiadomość
ison
» 2010-11-24 17:01:49
C/C++
int m, n;
cin >> m >> n;
Na przykład podać wejście, bo obecnie program bierze wartości z sufitu?
jesteś pewien?
P-24445
Tiestes
Temat założony przez niniejszego użytkownika
» 2010-11-24 17:05:36
Wartości są wprowadzane przez użytkownika w konsoli...
Chciałem żeby alokacja pamięci dla tablicy następowała po kompilacji, a nie jak dla tablic statycznych przed kompilacją.
Żeby użytkownik w trakcie wykonywania programu zdefiniował jaką pojemność pamięci mam zarezerwować program. Dlatego skorzystałem z dynamicznej tablicy dwuwymiarowej.

Dobry mam w ogóle tok myślenia, czy cały czas czegoś nie rozumiem?

Jak odpalam program w dev c++ to działa i jest ok. Ale przy kompilacji w ideone, coś się sypie. To mi nie daje spokoju...
Poniżej zamieszczam cały kod.

C/C++
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    short int m, n;
    cin >> m >> n;
   
    int ** tab;
    tab = new int *[ m ];
    for( int j = 0; j < m; j++ )
         tab[ j ] = new int[ n ];
   
    for( int k = 0; k < m; k++ )
    {
        for( int i = 0; i < n; i++ )
             cin >> tab[ k ][ i ];
       
    }
    for( int j = 0; j < n; j++ )
    {
        for( int i = 0; i < m; i++ )
             cout << tab[ i ][ j ] << " ";
       
        cout << endl;
    }
    for( int j = 0; j < m; j++ )
         delete[] tab[ j ];
   
    delete[] tab;
    getch();
    return 0;
}
P-24447
ison
» 2010-11-24 17:10:21
Dobry mam w ogóle tok myślenia, czy cały czas czegoś nie rozumiem?
dobry

C/C++
cout << tab[ i ][ j ] << " ";
odwrotnie i,j

kod zamieszczaj w [cpp]kod[/cpp]
P-24448
Elaine
» 2010-11-24 17:13:24
C/C++
int m, n;
cin >> m >> n;
Na przykład podać wejście, bo obecnie program bierze wartości z sufitu?
jesteś pewien?
Tak, jestem pewien: http://img35.imageshack.us/img35/831/bladwx.png - popatrz dokładnie, jakie jest wejście.
P-24450
Tiestes
Temat założony przez niniejszego użytkownika
» 2010-11-24 17:14:20
j, i są specjalnie zamienione miejscami, ponieważ program ma transponować macierz. Więc jego wymiary m x n zmienią się na n x m.
Ok, dzięki za podpowiedź z
kod
.
P-24451
Tiestes
Temat założony przez niniejszego użytkownika
» 2010-11-24 17:16:16
Więc on w ogóle nie korzysta z tego cin? ten strumień w tym przypadku nie wprowadza żadnej wartości do zmiennej?
P-24453
DejaVu
» 2010-11-24 17:16:31
Nie wiem czy czytałeś log kompilacji, ale:
prog.cpp:2:19: error: conio.h: No such file or directory
prog.cpp: In function ‘int main()’:
prog.cpp:33: error: ‘getch’ was not declared in this scope

/edit:
Poza tym używając tamtej strony nie możesz wprowadzić standardowego wejścia, więc rozmiar alokowanych tablic jest nieprzewidywalny.
P-24454
Elaine
» 2010-11-24 17:17:32
Ależ wprowadza... a ściślej wprowadzałby, gdyby miał co, bo żadnego wejścia nie podałeś.

Poza tym używając tamtej strony nie możesz wprowadzić standardowego wejścia
Sprawdzałeś chociaż? ;> Tak się dziwnie składa, że można ;>
P-24455
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona