dynamische matríx
-
hi,
folgendes programm:
benutzer soll zeilenzahl einer matrix auch char eingeben
eingabe z.b. 5 -> "nullte" zeile des arrays soll ein zeichen lang sein, erste zeile des arrays soll 2 zeichen lang sein, zweite zeile soll drei zeichen lang sein usw. so sieht mein prog aus:head.h:
#ifndef head_h #define head_h head_h class matrix { public: void matrix_erstellen(); void matrix_ausgeben(); void matrix_elementaendern(); private: char** pMatrix; int zeilenzahl; }; #endifmatrix.cpp:
#include"head.h" #include<iostream> #include<cstdlib> using namespace std; void matrix::matrix_erstellen() { int i,j; int zufallszahl; cout<<"Wieviele Zeilen soll diei Matrix haben? ";cin>>zeilenzahl; zeilenzahl--; char** pMatrix = new char*[zeilenzahl]; for(i=0;i<=zeilenzahl;i++) pMatrix[i] = new char[i+1]; for (i=0;i<=zeilenzahl;i++) { for (j=0;j<=i+1;j++) { zufallszahl = 33+(rand() % 93); pMatrix [i][j] = static_cast<char>(zufallszahl); } } cout<<"\nMatrix wurde erfolgreich erstellt.\n"; } void matrix::matrix_ausgeben() { int i,j; cout<<endl; for (i=0;i<=zeilenzahl;i++) { for (j=0;j<=i+1;j++) { cout<< pMatrix[i][j]<<" "; } cout<<endl; } } void matrix::matrix_elementaendern() { cout<<"kommt spaeter"; }#include"head.h" #include<iostream> using namespace std; int main() { cout<<"Willkommen beim Matrix Programm\n"; matrix matrix1; matrix1.matrix_erstellen(); matrix1.matrix_ausgeben(); return 0; }das ganze únter visual c++. beim compilieren hab ich 0 errors 0 warnings und wenn ich dann ausführen will kommt folgendes:
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/aufgabe4.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.aufgabe4.exe - 2 error(s), 0 warning(s)
kann mir jemand sagen woran das liegt?
thx onlythelonely
-
Du hast ne win32-anwendung erstellt, schreibst aber ein konsolenprogramm. Du musst als Projekt eine Win32-Konsolenanwendung oder so ähnlich erstellen.
-
Oder erstell einfach ein Konsolenprojekt neu und mach Copy & Paste
-
vielen dank jetzt startet das programm.
jetzt ist nur folgendes problem:
sobald die ausgabe der matrix startet kommt eine windows fehler:
aufgabe4.exe hat ein problem und muss beendet werden...
wenn ich direkt bei der matrixerstellung teste ob werte drin sind funktioniert die ausgabepMatrix [i][j] = static_cast<char>(zufallszahl);cout<<pMatrix[i][j];aber sobald die ausgabe methode startet kommt der windows fehler.
hab durch // rumprobiert. muss an der zeilecout<<pMatrix[i][j];liegen. warum?
onlythelonely
-
wenn ich die ausgabe schleife in die methode reinkopiere wo die matrix erstellt wird funktioniert sie! aber nicht wenn sie in der ausgabe methode steht. kann doch eigentlich nicht sein oder?
-
Du schreibst über den alloziierten Speicher hinaus. Mach mal anstatt i<=zeilenzahl einfach i<zeilenzahl

-
Hat nix mehr mit MFC/VisualC zu tun!