Ich möchte ein einfaches Programm machen, wo ein Benutzer "i x y" eingeben kann, wobei x und y ganze Zahlen sind, Dimensionen des Arrays. Ich habe eine Klasse myarray gemacht, die die Matrix macht. Die Ausgabe des Programms ist jedoch Leerzeichen und \ n. Weiß jemand, was kann ich tun, um es zu beheben?Erzeugen eines zufälligen 2D-Arrays
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class myarray
{
char** grid;
int dimX,dimY;
public:
myarray(){grid=0;}
myarray(int m,int n) {grid = new char* [m]; for(int i=0;i<m;i++) {grid[i]=new char [n];} dimX=m; dimY=n;}
~myarray(){for(int i = 0; i < dimX; ++i) {delete[] grid[i];} delete[] grid;}
char** fetcharray(){return grid;}
void display_grid();
void randomize_grid(){for(int i=0;i<dimX;i++) for(int j=0;j<dimY;j++) grid[i][j]=rand()%10;}
};
int main()
{
srand(time(NULL));
bool check(true);
while(check)
{
char a; //a-firstinp;
int m,n; //m,n-grid size
cin>>a;
switch(a)
{
case 'i':
case 'I': {cin>>m>>n;
myarray c(m,n);
c.randomize_grid();
c.display_grid();
break;}
default: {cout<<"Invalid input! Possible commands: i,c,l,v,h,k,f,s,x! Try again: \n";
break;}
}
}
}
void myarray::display_grid()
{
for(int i=0;i<dimX;i++)
{
cout<<"\n";
for(int j=0;j<dimY;j++)
cout<<grid[i][j];
}
}
Vielen Dank im Voraus!
Das ist eine seltsame Einrückung Stil. – user2296177
Diese Klasse [verletzt die Regel der Drei] (http://stackoverflow.com/questions/4172722/what-is-the-rule-of-three). Wenn eine verletzungsbedingte Verletzung hinzugefügt wird, führt dies zu einem undefinierten Verhalten und einem wahrscheinlichen Absturz bei der Zerstörung. –