BELIEBIG großes Array anlegen?

C

CharArray

Hallo!

In einer Aufgabe heißt es, man soll ein beliebig großes Array anlegen. Es könnte theoretisch unendlich sein.
So geht's ja nicht:

char wort[ ];

Ich habs über Pointer probiert.

...
char *ptr;
char wort;

cin >> wort;
ptr = new char[wort];
...
Darf man das überhaupt so machen?
Was aber, wenn das Programm die Zahl der Buchstaben ausgeben soll OHNE sizeof oder strlen?
Ich hab das hinbekommen, aber nur bei einer vorgegebenen const Anzahl der Arrayelemente.

Code:
#include<iostream>
#include<string>
using namespace std;

void readString(int Laenge, char *teststring);



/*	-----------------------------
	Das Hauptprogramm mit Aufruf von 2 Funktionen.
	-----------------------------*/

void main()
{	
	
	const int Laenge = 10;
	char teststring[Laenge]= {};

	cout << "Bitte geben Sie ein Wort ein: ";

	readString(Laenge, teststring);

	
}





/*	----------------------------
	Einlesen der kleinbuchstaben
	----------------------------*/
void readString(int Laenge, char *teststring)
{	
	bool abbruch = false;
	char testeing;
	int input;
	int i=0;

	while(abbruch == false)
		{	

			cin.get(testeing);
			input = int (testeing);
			teststring[i] = testeing;
			if(input != 10) 
				i++;
			if((input == 10) || (i >= Laenge))
				abbruch = true; 
		}
	cout << i;
	return;
}

Um die Anzahl zu berechnen, braucht das Unterprogramm ja die int Laenge, aber was wenn sie "beliebig" sein soll?

Vielleicht kann mir das ja jemand erklären ^^

Danke
 
Wie man Arrays mit new anlegt weißt du ja schon.
Ob du da als Größe 1 oder 10000 angibst, ist im Grunde egal, aber einfach "beliebig" geht nicht.
Du musst auf jeden Fall eine Obergrenze bei new angeben.

Und mehr Platz, als dein Ram(+Auslagerungsdatei etc) hergibt, bekommst du sowieso nicht
 
Zurück