Kann ein char-Array mit einem beliebigen Datentyp verwendet werden?
Dasmalloc()
-Funktion gibt einen Zeiger vom Typ @ zurüvoid*
. Es ordnet Speicher in Bytes nach demsize_t
value wurde als Argument übergeben. Die resultierende Zuordnung besteht aus unformatierten Bytes, die mit jedem Datentyp in C verwendet werden können (ohne Casting).
Kann ein Array mit dem Typchar
innerhalb einer Funktion deklariert, die @ zurückgivoid *
, kann mit jedem Datentyp verwendet werden, z. B. mit der resultierenden Zuweisung vonmalloc
?
Beispielsweise
#include <stdio.h>
void *Stat_Mem();
int main(void)
{
//size : 10 * sizeof(int)
int buf[] = { 1,2,3,4,5,6,7,8,9,10 };
int *p = Stat_Mem();
memcpy(p, buf, sizeof(buf));
for (int n = 0; n < 10; n++) {
printf("%d ", p[n]);
}
putchar('\n');
return 0;
}
void *Stat_Mem()
{
static char Array[128];
return Array;
}