On 1/14/2015 10:17 AM, Bauss wrote:
On Wednesday, 14 January 2015 at 01:16:54 UTC, Bauss wrote:
Is it possible to access a pointer by its offsets.
Ex. write a 32bit integer to a byte pointer at ex. offset 4.
To give an example in C# you can do this:
fixed (byte* Packet = Buffer) // Buffer would be a byte array
And then to set the value of a specific offset
*((TYPE*)(Packet + OFFSET))
Where TYPE could be replaced by ex. uint and OFFSET by 4
I tried to look here:
http://dlang.org/arrays.html
But couldn't seem to find anything like it.
Can't seem to edit OP so at:
The forum is a web interface to a newsgroup, which also has a mailing
list interface. So no, no editing.
*((TYPE*)(Packet + OFFSET))
It should be:
*((TYPE*)(Packet + OFFSET)) = VALUE;
VALUE has to be of the same type as TYPE of course.
void main()
{
ubyte[16] bytes;
for( int i=0; i<4; ++i )
{
*(cast( int* )( bytes.ptr + (i*4))) = i;
}
import std.stdio : writeln;
writeln( cast( int[] )bytes );
}