X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=testub10.git;a=blobdiff_plain;f=gesamt%2Flewurm_09.call;fp=gesamt%2Flewurm_09.call;h=80343ce1e14459cf7adaabda083f6a12a962e079;hp=0000000000000000000000000000000000000000;hb=89b2d6e5e8c24415bcd51a6b3a5687880e86d164;hpb=b0a180255d33c4f4b1158e03788411e905ed36b4 diff --git a/gesamt/lewurm_09.call b/gesamt/lewurm_09.call new file mode 100644 index 0000000..80343ce --- /dev/null +++ b/gesamt/lewurm_09.call @@ -0,0 +1,20 @@ +unsigned long long f(unsigned long long[]); + +/* hint: pointer arithmetic in C */ +#define ERG (ar + 3) + +unsigned long long ar[] = {5, 6, 7}; +unsigned long long ar_copy[] = {5, 6, 7}; +int j; +unsigned long long ret; + +printf("adr of ar: 0x%016lx\n", ar); +for(j=0; j < sizeof ar / sizeof ar[0]; j++) { + printf("ar[%i]: %d\n", j, ar[j]); +} +ret = f(ar); +printf("ret ist 0x%016lx (sollte 0x%016lx sein)\n", ret, ERG); +for(j=0; j < sizeof ar / sizeof ar[0]; j++) { + printf("ar[%i]: %d\n", j, ar[j]); +} +RET(ret == (unsigned long long) ERG && ar[0] == ar_copy[0] * 30 && ar[1] == ar_copy[1] * 10 && ar[2] == ar_copy[2] * 20);