Zum Inhalt springen

Probleme bei der Speicherreservierung


Empfohlene Beiträge

Geschrieben

Ich habe ein Problem, dass ich einen 3-fachen Pointer anlegen möchte - nur leider geht das mit new irgentwie nicht - sobald ich etwas in die Variable schreiben will, gibt er mir eine fehlermeldung aus.


int main(int argc, char* argv[])

{

	int i = 0;

	char*** pppcztstr = new char**;


	strcpy(pppcztstr[0][1],  IE_URL_01);

	strcpy(pppcztstr[1][1],  IE_URL_01);

	strcpy(pppcztstr[2][1],  IE_URL_02);

	strcpy(pppcztstr[3][1],  IE_URL_04);

	strcpy(pppcztstr[4][1],  IE_URL_05);

	strcpy(pppcztstr[5][1],  IE_URL_06);

	strcpy(pppcztstr[6][1],  IE_URL_07);

	strcpy(pppcztstr[7][1],  IE_URL_08);

	strcpy(pppcztstr[8][1],  IE_URL_09);

	strcpy(pppcztstr[9][1],  IE_URL_10);

	strcpy(pppcztstr[10][1], IE_URL_11);



	while(i<10)

	{

	 _execv(IE_PATH, pppcztstr[i]);

	}

	return 0;

}

Kann mir jemand sagen warum ?

Btw: die IEs sind alles char[]s

Geschrieben

hihi, fast das gleiche hab ich letztens schonmal gesehn'.

du hast nur den speicher für einen pointer auf einen char-pointer reserviert, mehr nicht.

in C ist es soweit ich weiss nicht vorgesehen den speicher so dynamisch zu verwalten, wie du es willst. wenn du es wirklich dynamisch haben willst, solltest du es in c++ z.b. mit der vector class machen. oder mit listen. gibt mehrere möglichkeiten.

in C wuerde ich vorschlagen, dass du ein array mit char-pointern anlegt und dann fuer jedes feld im array speicher allokierst. und in jeden feld dann den pointer auf dein allokierten speicher ablegst.

etwa so:


char *mein_array[10];


for(i = 0; i < 10; i++)

{

  mein_array[i] = new char[8];

}

bei der deklarierung von mein_array erhältst du ein char*-array mit 10 feldern.

in der schleife werden diese 10 felder mit pointern auf char-arrays mit 8 feldern gefüllt.

ich hoffe ich konnte dir helfen.

Geschrieben

ich habe nicht gesgagt, dass man nicht so viele dimensionen anlegen kann. du kannst du viele dimensionen machen wie du willst.

es ging darum, dass er ein array nicht einfach in ein-dimesionaler richtung verlaengern kann.

er muss den speicher fuers erste array vorher allokieren.

und in den feldern des arrays dann die pointer auf den speicher ablegen, den man dann ggf. in einer schleide neu allokiert

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...