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

Hallo, ich hab mir ein kleines C-Programm geschrieben um den Umgang mit Funktionen und Strukturen zu lernen, aber ich bekomme einen Speicherzugriffsfehler. Sieht jemand wo das Problem liegt?

Danke im Voraus. :confused:



#include <stdio.h>
#include <stdlib.h>
#include <string.h>


struct stadt
{
int baumzahl;
int strassenzahl;

struct //struktur in der struktur
{
int kinder;
int etagen;
char namehund[32];
}haus;

};

void ausgabe( struct stadt A, int i ) //das soll die Funktion sein, die ich in der schleife aufrufe
{
printf("Ausgabe von Stadt Nr.: %d \n",i );
printf("Es gibt %d Bäume und %d Strassen \n",A.baumzahl, A.strassenzahl );
printf("Im Haus gibt es %d Kinder, %d Etagen und der Hund heißt %s \n",A.haus.kinder, A.haus.etagen,A.haus.namehund);
}

int main()
{
printf("1");
int i;
struct stadt reise[4]={ {230,10,{2,3,"Bello"}},
{1290,70,{7,4,"Hasso"}},
{2000,9,{1,4,"Goofy"}},
{40,340,{2,3,"Flash"}} };

printf("2");
while ( i != 4 )
{

printf("3");
ausgabe( reise[i], i );
i++;
}

printf("Ende\n");

return 0;
}

[/php]

  • Autor

Ah, natürlich, vielen Dank! Es funktioniert^^

Komisch, mein Prof hat gestern erzählt, wenn eine Variable nicht initialisiert wird, dann wird sie automatisch mit 0 belegt, damit man sich keine Informationen über das, was zuvor im Speicher gestanden hat, holen kann... das ist hier wohl nicht passiert?

Bearbeitet von Kadaj

Ausser man verwendet z.b. Visual Studio und den Debug Modus, in diesem werden alle Variablen mit 0 initialisiert, was spaeter zu haesslichen fehlern fuehren kann ;)

Ausser man verwendet z.b. Visual Studio und den Debug Modus, in diesem werden alle Variablen mit 0 initialisiert
Das stimmt nicht.

Variablen mit statischer Lebensdauer (global oder static) werden immer default-initialisiert (für POD-Typen heißt das 0), egal ob Debug oder Release, das verlangt der Standard.

Uninitialisierte lokale Variablen initialisiert Visual C++ im Debug-Modus mit einem auffälligen Bitmuster (0xCC).

Bearbeitet von Klotzkopp

Da hast du recht, hatte ich falsch in Erinnerung.

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.