| Version 1 (modified by , 13 years ago) ( diff ) |
|---|
Arrays
Thoughts on arrays and related issues.
- drop C's silly pointer-array pun. Pointers and arrays have nothing to do with each other. In C,
void f(double[] x) {…} double a[10]; … f(a); …
is automatically converted to
void f(double *x) {…}
double a[10];
…
f(&a[0]);
…
In CIVL-C (CIVL?), you write the one you mean.
- Arrays are values just like any other kind of value (similar to structs). They can be passed as arguments to functions and returned by functions.
- The incomplete array type "array of t", denoted
t[], can be used (almost) anywhere a type is expected, including the element type of an array type. The domain oft[]is all arrays oft, of any length. A complete typet[n]is a subtype oft[]. Example:$message[] append_message($message[] queue, $message m);
takes an array of messages and returns an array one longer which is equivalent to the original array with $m$ added. There is no "sharing" between these two arrays.
- Instead of malloc, introduce an operator
$alloc(heap, type)whereheapis an expression of type pointer-to-heap andtypeis a type name. The type of this expression is pointer-to-type. It allocates an object of the given type on the specified heap and returns a pointer to that object.
Note:
See TracWiki
for help on using the wiki.
