Struktur: Variablen + Array initialisieren

Gast #1518545
Lesenswert?

Guten Morgen,

ich in meinem C Programm eine definierte Struktur die sämtliche 
Variablen sowie ein Array enthält Speicher reservieren/anlegen und 
anschließend die Variablen bzw. das Array mit "0" initialisieren.
1
typedef struct
2
{
3
  unsigned short  usID1;
4
  unsigned short  usID2;
5
  unsigned short  usSize;
6
  unsigned char   Data[100];
7
}T_DATEN, * PT_DATEN;
8

9
T_DATEN  tDaten;
10

11

12
void main(void)
13
{
14
 ....
15
 tDaten = (PT_DATEN)malloc(sizeof(T_DATEN),unsigned char);
16
 ...
17
}

Mit malloc wird ein Speicher nun reserviert. Wird dabei auch jede 
Vafriable bzw. das Array mit Null initialisiert? Wenn nein müsste ich 
dann noch die Funktion memset verwenden?
Gast #1518603
Lesenswert?

Hi,

Du brauchst in diesem Fall weder ein malloc noch ein calloc noch sonst 
eine Speicherallokation.
Du hast eine globale Variable vom Typ struct und keinen Zeiger. Warum 
also Speicher anfordern?
Tatsächlich kannst Du Dich aber nicht darauf verlassen, dass in der 
Variablen alle Parameter mit 0 initialisiert werden.

Gruß

P.S.: malloc hat nur einen Parameter, deswegen ist der Zweite auch Quark
Gast #1518757
Lesenswert?

Leo schrieb:
> ich in meinem C Programm eine definierte Struktur die sämtliche
> Variablen sowie ein Array enthält Speicher reservieren/anlegen und
> anschließend die Variablen bzw. das Array mit "0" initialisieren.

Dieser Satz kein Verb.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren