Eigene Klasse included und Programm crasht

Hi!
Ich habe angefangen mir eine Matrix Klasse zu schreiben um damit entsprechende Operationen durchzuführen.
Das große Problem nun ist, daß mein Compiler zwar nicht meckert, aber das Programm direkt crasht wenn ich auch nur 1x diese Klasse versuche im Quellcode zu verwenden.
Ich bin noch nicht sehr flüssig in C++ und trotz WWW-Suche, habe ich nichts gefunden, was mir da jetzt explizit weiterhilft.
Hat hier vielleicht jemand eine Idee?

Grüße

Fueselier


Matrix.h

#ifndef _MATRIX_H_
#define _MATRIX_H_
#include
#include
#include
#include

#define MAX_MATRIX_SIZE 10000
#define VERBOSE0 0 //Verbose für Konstruktor
#define VERBOSE1 0 //Verbose für create()

using namespace std;
class Matrix {
public:
int n, m; //die Dimensionen der 2D Matrix
double matrix[MAX_MATRIX_SIZE][MAX_MATRIX_SIZE];
// public:
Matrix() {};
Matrix(int,int);
void create();
int getMDim();
int getNDim();
double getValue(int,int);
Matrix getLine(int);
Matrix getColumn(int);
void setValue(int,int,double);
};
//Konstruktor
Matrix::Matrix(int m_dim, int n_dim) {
m = m_dim;
n = n_dim;
if (VERBOSE0) {
cout
#include
#include
#include
#include „Matrix.h“

using namespace std;

int main(int argc, char *argv[]) {
Matrix t(10,10);
t.create();
cout

Hallo Fueselier,

erstmal vorweg:

  • es ist nicht hübsch, den Quelltext nicht
    in pre> … /pre> zu setzen,

  • es ist nicht hübsch, gerade die Teile
    des Quelltextes, in denen es spannend
    wird, nicht zu schicken,

Ich habe angefangen mir eine Matrix Klasse zu
schreiben um damit entsprechende Operationen
durchzuführen.

OK, sehr gut!

Das große Problem nun ist, daß mein Compiler zwar
nicht meckert, aber das Programm direkt crasht wenn
ich auch nur 1x diese Klasse versuche im Quellcode
zu verwenden.

Dazu folgende Bemerkungen.

  1. der Quellext sieht etwas „java-artig“ aus, aber egal :wink:

  2. die Zeilen

#define MAX_MATRIX_SIZE 10000

class Matrix {
public:
int n, m; //die Dimensionen der 2D Matrix
double matrix[MAX_MATRIX_SIZE][MAX_MATRIX_SIZE];

erzeugen bei der Instantierung sofort ein 800MB-großes
Objekt auf dem Stack des Programmes, wonach sich das
Programm natürlich sofort mit ‚stack overflow‘
verabschiedet.

Ich bin noch nicht sehr flüssig in C++ und trotz WWW-Suche,
habe ich nichts gefunden, was mir da jetzt explizit
weiterhilft. Hat hier vielleicht jemand eine Idee?

Ein gutes Buch für die ersten Schritte - und vielleicht
erstmal die C-Grundlagen erlernen, letzteres hätte Dich
wahrscheinlich vor „matrix[10000][10000]“ bewahrt :wink:

Grüße

CMБ