Dynamisches Feld (C++)

Joa, hallo erstmal. Is schon so ne Woche her, da wollte ich ne kleine Quizfragen-Datenbank erstellen( nur zur Übung, bin nämlich Anfänger ) und zwar mit folgendem Code( sicher nicht der beste, aber wie gesagt zur Übung ) :
Code:
#include"Quiz.hpp"

int main(void)
{
	  short Decision=0;
			do
			{
				  cout<<"Geben sie ein was sie machen wollen:\n"
				  <<"[1]Quiz starten\n[2]Neue Frage\n[3]Fragen Speichern\n"<<
				  "[4]Fragen Laden\n[5]Beenden\n";
				  cin>>Decision;
				  
				  switch(Decision)
				  {
							  case 1:
														QuizStart();
														break;
									case 2:
														NewQuest();
														break;
									case 3:
														break;
									case 4:
														break;
									default:
																	break;
						}
			}while(Decision!=5);
	  
	  return 0;
}
void QuizStart(void)
{
	  if(NumberQuestions>0)
	  {
						cout<<"Es gibt "<<NumberQuestions<<" Fragen!"<<endl;
						for(int i=0;i<NumberQuestions;i++)
				  {
									for(int i2=0;i2<Quest[i].NumberQuestionWords;i2++)
							  {
												for(int i3=0;i3<Quest[i].Ask[i2].Letters;i3++)
										  {
															cout<<Quest[i].Ask[i2].Word[i3];
												}
												cout<<" ";
									}
									cout<<'\n';
						}
			}
			else if(NumberQuestions==0)cout<<"Es muessen erst Fragen eingegeben werden!"<<'\n';
}
void NewQuest(void)
{
	  //CQuest gets old Questions
	  int a=0;
	  Question *CQuest=new Question[NumberQuestions];
	  for(int i=0;i<NumberQuestions;i++)
	  {				  
						CQuest[i].NumberQuestionWords=Quest[i].NumberQuestionWords;
						for(int i2=0;i2<Quest[i].NumberQuestionWords;i2++)
				  {
									CQuest[i].Ask[i2].Letters=Quest[i].Ask[i2].Letters;
							  for(int i3=0;i3<Quest[i].Ask[i2].Letters;i3++)
							  {
												CQuest[i].Ask[i2].Word[i3]=Quest[i].Ask[i2].Word[i3];
									}
						}
			}

			//delete Old Questions
	  for(int i=0;i<NumberQuestions;i++)
	  {
						for(int i2=0;i2<Quest[i].NumberQuestionWords;i2++)
			   {
							  cin>>a;
							  cout<<"ja"<<i<<endl<<i2<<'\n';
							  delete[] Quest[i].Ask[i2].Word;
									cin>>a;
									Quest[i].Ask[i2].Word=0;
						}
      delete[] Quest[i].Ask;
      Quest[i].Ask=0;
			}
			delete[] Quest;
			Quest=0;
   
	  
	  //New Structure
	  NumberQuestions++;
			Quest=new Question[NumberQuestions];
	  
			//Declare the old Questions:
			for(int i=0;i<NumberQuestions-1;i++)
			{
				  Quest[i].NumberQuestionWords=CQuest[i].NumberQuestionWords;
				  for(int i2=0;i2<Quest[i].NumberQuestionWords;i++)
				  {
							  Quest[i].Ask[i2].Letters=CQuest[i].Ask[i2].Letters;
							  for(int i3=0;i3<Quest[i].Ask[i2].Letters;i3++)
							  {
										  Quest[i].Ask[i2].Word[i3]=CQuest[i].Ask[i2].Word[i3];
									}
						}
			}
			
			//delete CQuest
	  
	  cout<<"Wie viele Woerter hat deine Frage?"<<'\n';
	  cin>>Quest[NumberQuestions-1].NumberQuestionWords;
	  Quest[NumberQuestions-1].Ask=new Word[Quest[NumberQuestions-1].NumberQuestionWords];
	  
	  for(int i=0;i<Quest[NumberQuestions-1].NumberQuestionWords;i++)
	  {
	     cout<<"Wie viele Buchstaben hat dein "<<i+1<<". Wort?\n";
	     cin>>Quest[NumberQuestions-1].Ask[i].Letters;
	     Quest[NumberQuestions-1].Ask[i].Letters;
	     cout<<"Gib das "<<i+1<<". Wort ein:"<<'\n';
	     Quest[NumberQuestions-1].Ask[i].Word=new char[Quest[NumberQuestions-1].Ask[i].Letters];
	     cin>>Quest[NumberQuestions-1].Ask[i].Word;
			}
			cout<<"Deine Neue Frage lautet nun:"<<'\n';
			for(int i=0;i<Quest[NumberQuestions-1].NumberQuestionWords;i++)
			{
				  cout<<Quest[NumberQuestions-1].Ask[i].Word<<" ";
			}
			cout<<"\n";
}
Quiz.hpp:
Code:
#include<iostream>
#include<cstdio>
using namespace std;

struct Word
{
	  char *Word;
	  short Letters;
};
struct Question
{
	  Word *Ask;
	  Word *Answer;
	  short NumberAnswerWords;
	  short NumberQuestionWords;
};
short NumberQuestions=0;
Question *Quest=new Question[1];

void QuizStart(void);
void NewQuest(void);
Nun ist es so, dass wenn ich eine Frage im Programm erstelle, und diese dann abfrage alles funzt, jedoch wenn ich sie wieder freigeben will, kommt ein Fehler(deshalb das cin>>, zur Überprüfung).
 
Kannst du mal posten welcher Fehler bei dir kommt.

1. Wenn du structs als "Word" deklarierst musst du immer aufpassen, dass du nicht mit der WinAPI in Konflickt geräts... (das nebenbei).

2. Wenn ich deinen Code richtig verstehen erstellst du ein struct für ein "Wort" (String?).
Warum verwendest du keine Strings. C-Strings (char* ) sind, wie der Name schon sagt, Überbleibsel aus C-Zeiten. Strings sind da vesentlich konfortabler.

3. Dein Formatierung des Codes *räusper*. Ich hab schon schlimmeres gesehen aber sieht bissi komisch aus. :D

Zu deinem Prob:
Poste mal den Fehler oder versuche C++-Strings zu verwenden.
Google: Strings

MFG
Ace
 
1.Weiß ehrlich gesagt nicht wieso, gibts das schon?
2.Weil es mir zum Verständnis für helfen soll( strings sind zu EINFACH, wenn du verstehst ;) )

3.Das stimmt, aber es ging nicht anders einzufügen, wenn du weißt wie man es entsprechend formatieren kann...

Zurück zum Problem, genau in Zeile 78 beendet er sich einfach und sagt das es ein Problem gab: Quiz.exe funzt nicht mehr und er ist sauer :D
EDIT: Zu einfach heißt: Ich will üben!
 
Zurück
Oben