Fehler in main exe

scrat2

Grünschnabel
muss wie eiskaltes händchen auch eine matrizenmultiplikation programmieren:
der compiler zeigt 0 fehler, 0 warnungen......alles läuft super,bis...naja.
also,während der ergebnisausgabe öffnet sich ein fenster und "Fehler in main exe" wird ausgegeben. fange an zu verzweifeln. woran kann das liegen?
bin für alles offen und sage danke zu allen beiträgen.
 
Etwas code währe sehr hilfreich, ansonsten Programm erst mal Debuggen, aber wahrscheinlich versuchst du auf einen bereits gelöschten Speicher etwas zu schreiben. Hast du vielleicht delete zu oft eingesetzt oder auf ein Objekt das nicht mit new erzeugt wurde?

Gruß
cesupa
 
Hallo scrat2,

zwei Unannehmlichkeiten machen es leider sehr schwer, deine Beiträge zu erfassen:

Deine Beiträge sind durchgehend in Kleinschreibung verfasst (siehe Netiquette Punkt 15)

Es wäre hilfreich, wenn du diese Punkte beheben würdest. Einen bereits gespeicherten Beitrag kannst du über den „Ändern“-Button rechts unten im Beitrag entsprechend anpassen.

Grüße,
Matthias
 
Ich habe meinen Eintrag erst mal wieder gelöscht. Ich werde aber noch eine detaliertere Beschreibung reinstellen, muss aber erst noch ein wenig ändern um zu verdeutlichen wo mein Problem liegt. Danke trotzdem schon mal!
 
Das ist mein Problemprogramm:
Code:
#include <iostream.h>
#include <math.h>
void main()
{
	int A[9][9],B[9][9],C[9][9];
	int h1,h2,b1,b2;
	int a,b,c,d=0;

	for(b=0;b<10;b++)
	{
		for(a=0;a<10;a++)
		{
			A[a][b]=0;
			B[a][b]=0;
			C[a][b]=0;
		}
	}

	cout<<"Matrix 1 Hoehe		:";
	cin>>h1;
	cout<<"Matrix 2 Hoehe		:";
	cin>>h2;
	cout<<"Matrix 1 Breite		:";
	cin>>b1;
	cout<<"Matrix 2 Breite		:";
	cin>>b2;
	
	
	
	if((b1==h2) && h1<10 && h2<10 && b1<10 && b2<10 && h1>0 && h2>0 && b1>0 && b2>0)
	{
		cout<<endl<<endl;
		cout<<"Bitte Matrix 1 eingeben"<<endl<<endl;
		for(a=0;a<h1;a++)
		{
			for(b=0;b<b1;b++)
			{
				cin>>A[b][a];
				cout<<"		";
			}
			cout<<endl;
		}
		cout<<endl<<endl;
		cout<<"Bitte Matrix 2 eingeben"<<endl<<endl;
		for(a=0;a<h2;a++)
		{
			for(b=0;b<b2;b++)
			{
				cin>>B[b][a];
				cout<<"		";
			}
			cout<<endl;
		}
		for(b=0;b<h1;b++)
		{
			for(a=0;a<b2;a++)
			{
				for(c=0;c<b1;c++)
				{
					d = A[ c][b]*B[a][ c];
					C[a][b]=C[a][b] + d;
				}
			}
		}
		cout<<endl<<endl<<endl;
		cout<<"Ihre berechnete Matrix:"<<endl<<endl;
		for(a=0;a<h1;a++)
		{
			for(b=0;b<b2;b++)
			{
				cout<<C[b][a];
				cout<<"	  ";
			}
			cout<<endl;
		}
	}
	else
			cout<<"Fehler! Die Matrix kann nicht berechnet werden!"<<endl;
	
	
}
//Hier ist mein Programmende

Wenn ich es jetzt durchlaufen lasse,bekomme ich die Meldung:
Die Anweisung in "0x00000000" verweist auf Speicher in "0x00000000".
Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
Was muss ich tun um dies zu beheben?
 
Zuletzt bearbeitet:
Hi.

Bitte benutze die Code Tags wie Matthias das dir bereits erklärt hat!

Hier die Fehler in deinem Code:

  1. main muß den Rückgabetyp int haben.
  2. C++ Standard-Header haben keine Endung, C Header werden in C++ auch ohne Endung aber mit dem Präfix "c" eingebunden. Dann ist der Namensraum std zu verwenden.
  3. deine Initialisierungsschleifen sind falsch. Du hast Array mit 9x9 Elementen, da darfst du auf den Index 0 bis 8 zugreifen. (die Initialisierung ist im Grunde unnötig)
C++:
#include <iostream>
#include <cmath> // wird nicht benutzt

using namespace std;

int main() {
  int A[9][9];
  for (int i = 0; i < 9; ++i) { 
    ...
  }
}
Gruß
 
Zurück