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

http://people.freenet.de/sirblender/problem.JPG

[ich habe da mal einen Link draus gemacht | Klotzkopp]

Diese Fehlermeldung kommt beim Ausführen des Programms. Wenn ich das 3 Dimensionale Array auskommentiere kommt diese Meldung nicht und das Programm läuft. Was habe ich falsch gemacht?

...

// Konstruktion

public:

int lnMaxTiefe;

int lnMaxBreite;

int lnMaxHoehe;

int nHoheTiefeBreite[200][200][500]; // 3D Array

CContainerDlg(CWnd* pParent = NULL); // Standard-Konstruktor

...

Dies ist die Meldung in der Leiste:

Geladene Symbole für "C:\Programme\Microsoft Visual Studio\MyProjects\container\Debug\container.exe"

"C:\WINDOWS\system32\ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

Geladene Symbole für "C:\WINDOWS\system32\MFC42D.DLL"

Geladene Symbole für "C:\WINDOWS\system32\MSVCRTD.DLL"

"C:\WINDOWS\system32\gdi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\user32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

Geladene Symbole für "C:\WINDOWS\system32\MFCO42D.DLL"

"C:\WINDOWS\system32\mfc42loc.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\apphelp.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

"C:\WINDOWS\system32\version.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.

Thread 0x738 wurde mit Code 0 (0x0) beendet.

Thread 0x614 wurde mit Code -1073741571 (0xC00000FD) beendet.

Das Programm "C:\Programme\Microsoft Visual Studio\MyProjects\container\Debug\container.exe" wurde mit Code -1073741571 (0xC00000FD) beendet.

Christoph

Nur 19 MByte?

200 * 200 * 500 macht: 20.000.000 Bytes

Dann ist aber ein int regulär 4 Byte groß, sind dann plötzlich 80.000.000 Bytes, also ca. 80MB!

Da könnte es auf dem Stack ein wenig eng werden.

Nicht destotrotz sollte auch bei dieser größe von Array überlegt werden, ob man diese Menge Daten ernsthaft belegen und verarbeiten möchte oder evtl. über einen anderen Datentyp oder Array nachdenkt, der dynamischer reagiert -> STL?

na das is ja dann kein Wunder das es nicht läuft. Sollte ich mir was anderes Überlegen. Und ich habe mir die Haare gerauft :rolleyes:

Danke ich werde es mal anders versuchen

Original geschrieben von Crush

Woher seht ihr denn, daß das Array auf dem Stack angelegt wurde? Das Objekt könnte doch genausogut auf dem Heap angelegt worden sein?

int nHoheTiefeBreite[200][200][500];

Hier ist keine Speicherklasse angegeben (auto, static, extern, register), also gilt der Default: auto. Auto-Variablen werden auf dem Stack angelegt.

Ob ein Objekt Speicher auf dem Heap oder auf dem Stack belegt wird eigentlich immer noch dadurch bestimmt ob es lokal oder global ( z. B. mittels new )definiert wird( mit Ausnahme von statischen Variablen, die können auch wenn sie lokal definiert sind nicht auf dem Stack abgelegt werden ).

Übrigens belegt das Array nicht 19 sonder 76 MB ( int = 32 Bit ).

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.