Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

na denn hab ich ihn falsch verstanden ^^

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.