ERER schrieb:
> Wenn ich schreibe :
>
1 | memset(int_array, 0, sizeof(int_array));
|
> dann wird alles schön brav auf 0 gesetzt.
>
> Jedoch wenn ich schreibe
>
1 | memset(int_array, 3, sizeof(int_array));
|
> dann wird leider irgendwas in das int_array geschrieben, nur nicht 3.
Logisch.
memset betrachtet deinen Speicher als ein Array von Bytes und schreibt
in jedes Byte eine binäre 3 rein.
Bei einem 16 Bit int, der nun mal aus 2 Bytes besteht, ergibt die
Bytekombination 0x0303 dann eben 771. Bei einem 32 Bit int, der aus 4
Bytes besteht, ist die Bytekombination 0x03030303 dann eben dezimal
50529027
>
> Ich bekomme dann 16843009 für jedes integerelement.
das wäre 0x01010101. D.h. du hast einen memset mit 1 gemacht. Ist aber
egal. Gleiches Problem.
>
> Ich finde in keiner Dokumentation was über die FUnktion memset.
Google ist schon erfunden.
Macht aber nichts. Alle mem... Funktionen betrachten deinen Speicher als
Byte-Array und nicht mehr.
Wenn du was anderes brauchst, dann musst du selber Hand anlegen. Zb mit
einer Schleife.