Hallo, gibt es eine Möglichkeit, eine Struktur komplett zu "nullen"? Theoretisch brauche ich nicht mal den Wert "0" in den Strukturmembern, sondern die Struktur soll keine Wirkung haben, ähnlich wie ein NULL-Pointer.
Die Struktur wird in einem Funktionsaufruf übergeben void foo (struct bar strX). Am besten wäre es, wenn sie auf dem Stack gar nicht angelegt würde. Jedenfalls ist ihr Inhalt nicht relevant.
memset könnte eine Lösung für dich sein
1 | struct xyz |
2 | {
|
3 | int a; |
4 | char b; |
5 | };
|
6 | |
7 | void foo() |
8 | {
|
9 | struct xyz myVar; |
10 | |
11 | memset( &myVar, 0, sizeof( myVar ) ); |
12 | ...
|
13 | }
|
Nixwisser wrote: > Die Struktur wird in einem Funktionsaufruf übergeben void foo (struct > bar strX). Am besten wäre es, wenn sie auf dem Stack gar nicht angelegt > würde. Wenn du eine Variable nicht haben willst, dann gibt es nur 1 Möglichkeit: Leg sie nicht an. > Jedenfalls ist ihr Inhalt nicht relevant. Dann kann es dir doch Wurscht sein, was in der Struktur enthalten ist.
Kannst du den Zweck dieser Übung mal näher erläutern? Nur so aus Interesse. Steffen
Der Sinn erschliesst sich mir auch nicht, aber egal. Warum übergibst du der Funktion nicht einen Pointer auf die Struktur? Da kannst du dann auch einen Null-Pointer übergeben, falls erforderlich. Wenn du eine lokale Kopie benötigst, musst du die halt, wenn dann doch gewünscht, von Hand anlegen. Oliver
Hat sich erledigt. Trotzdem danke für eure Hilfe. Der Sinn dahinter: Ich muss eine Interface-Funktion aufrufen, in deren Deklaration im Kommentar zu lesen ist, dass falls man keine Daten für die besagte Struktur übergeben möchte, man diese Null setzen soll. Gemeint war allerdings, einen Pointer null zu setzen, der Strukturmember ist. Dadurch werden alle anderen Membervariablen ignoriert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.