Eigentlich ist das Quatsch.
Voids sind nciht dazu da. Void Zeiger (void*) sind für Funktionen da, wo man den Typ einer Variable nicht kennt (z.b. Bei Speicher Verwaltungs Funktionen).
wenn man den so benutzt wie du kann man gleich machen:
|
Quellcode
|
1
|
MyStruct ms= malloc(sizeof(MyStruct) * ArraySize);
|
das wäre auch noch syntaktisch richtig. Den wer sagt den das MyStruct genau einen Byte groß ist, und nicht 4 oder 16? Das hängt von der Struktur an sich selber ab. wenn du
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
struct MyStruct
{
char a;
};
struct MyStruct2
{
char a;
char b;
char c;
};
|
Versteht sich wohl von selber das Struct 2 größer ist....
Weiterhin wir void nur in C gebraucht in C++ wurde es durch templates ersetzt, soweit ich weiss.