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;
+}