Wie berechnet man die Menge an Speicher, die für eine Struktur mit variabler Länge benötigt wird?

8

Gegeben eine Struktur wie diese:

%Vor%

Was muss ich an malloc übergeben, um genügend Speicherplatz für ein struct a zuzuweisen, wobei d über n elements verfügt?

    
fuz 17.11.2012, 21:11
quelle

3 Antworten

9
%Vor%

Durch Verwendung der Variablen für sizeof wird sichergestellt, dass die Größe aktualisiert wird, wenn sich die Typen ändern. Wenn Sie andernfalls den Typ von d oder var ändern, riskieren Sie die Einführung stiller und möglicherweise schwer zu findender Laufzeitprobleme, indem Sie nicht genügend Speicher zuweisen, wenn Sie vergessen, eine der entsprechenden Zuordnungen zu aktualisieren.

    
Kevin 17.11.2012, 21:19
quelle
5

Sie können zum Beispiel verwenden: sizeof(struct a) + sizeof(my_t [n]) .

%Vor%

Ergebnis: 8 12

    
Pascal Cuoq 17.11.2012 21:17
quelle
4

Das sollte genug sein:

%Vor%     
mvp 17.11.2012 21:17
quelle

Tags und Links