source:
CIVL/examples/languageFeatures/pointerSubtraction.cvl@
397ae5f
| Last change on this file since 397ae5f was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 574 bytes | |
| Rev | Line | |
|---|---|---|
| [b4f940a] | 1 | #include <stdlib.h> |
| [9803bc1] | 2 | #include <civlc.cvh> |
| [b4f940a] | 3 | |
| [d66b03b] | 4 | $scope root = $here; |
| 5 | ||
| [b4f940a] | 6 | int main(){ |
| 7 | double (*p)[2]; | |
| 8 | double * q; | |
| 9 | double a[3][2]; | |
| 10 | double b[3][2]; | |
| 11 | double **x; | |
| 12 | ||
| 13 | p = a; //p == &a[0] | |
| 14 | q = &b[0][0]; | |
| 15 | p += 1; | |
| 16 | q += 6; | |
| [d66b03b] | 17 | x = (double **)$malloc(root, sizeof(double *) * 3); |
| [b4f940a] | 18 | |
| 19 | for(int i=0; i<3; i++) | |
| [d66b03b] | 20 | x[i] = (double *)$malloc(root, sizeof(double) * 2); |
| [b4f940a] | 21 | |
| [d980649] | 22 | $assert((p - a) == 1); |
| 23 | $assert((q - &b[0][0]) == 6); | |
| 24 | $assert(&x[0] - &x[2] == -2); | |
| 25 | $assert(&x[0][1] - x[0] == 1); | |
| 26 | $assert(&x[3] - x == 3); | |
| [b4f940a] | 27 | for(int i=0; i<3; i++) |
| 28 | $free(x[i]); | |
| 29 | ||
| 30 | $free(x); | |
| 31 | return 0; | |
| 32 | } | |
| 33 | ||
| 34 |
Note:
See TracBrowser
for help on using the repository browser.
