Mercurial > projects > ldc
diff test/ptrarith.d @ 1:c53b6e3fe49a trunk
[svn r5] Initial commit. Most things are very rough.
author | lindquist |
---|---|
date | Sat, 01 Sep 2007 21:43:27 +0200 |
parents | |
children | d9d5d59873d8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/ptrarith.d Sat Sep 01 21:43:27 2007 +0200 @@ -0,0 +1,33 @@ +void main() +{ + printf("Pointer arithmetic test\n"); + int* p; + printf("0x%x\n", p); + assert(p++ is null); + assert(cast(size_t)p == 4); + printf("0x%x\n", p); + p--; + assert(p is null); + printf("0x%x\n", p); + int d = 4; + p+=d; + printf("0x%x\n", p); + assert(cast(size_t)p == 16); + d = 2; + p+=d; + printf("0x%x\n", p); + assert(cast(size_t)p == 0x18); + d = 6; + p-=d; + printf("0x%x\n", p); + assert(p is null); + printf(" SUCCESS\n"); +} + +void fill_byte_array(ubyte* a, size_t n, ubyte v) +{ + auto p = a; + auto end = a+n; + while (p !is end) + *p++ = v; +}