() f() { // compile-time length var int#[1] ca1; var int#[10 + sizeof ca1] cb1; var int#[2-1] ca2; // compile-time length, pointer var int#[1] var^ pca1; var int#[10 + sizeof ca1] var^ pcb1; var int#[2-1] var^ pca2; // runtime length, pointer count length = 2; count size = 3; int#[length] var^ ra1; int#[length] var^ ra2; int#[size] var^ rb1; // initialize variables to avoid compiler warnings pca1 = @ca1; pcb1 = @cb1; pca2 = @ca2; // TODO how to initialize ra2, ra2 and rb1? // compile-time lengths ca1 = ca1; ca1 = ca2; cb1 = cb1; pca1 = pca1; pca1 = pca2; pcb1 = pcb1; ca1 = pca1^; pcb1 = @cb1; // runtime lengths ra1 = ra1; ra1 = ra2; rb1 = rb1; }