#include <stdlib.h>
long **matrixalloc(size_t d1, size_t d2) {
size_t i;
long **ret
= malloc(d1
*sizeof(long*)); for(i
=0; i
<d1
; ++i
) ret
[i
] = malloc(d2
*sizeof(long)); return ret;
}
void matrixfree(long **t, size_t d1) {
size_t i;
for(i
=0; i
<d1
; ++i
) free(t
[i
]); }
int main() {
long **t = matrixalloc(2, 5);
t[1][3] = 4;
matrixfree(t, 2);
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgoKbG9uZyAqKm1hdHJpeGFsbG9jKHNpemVfdCBkMSwgc2l6ZV90IGQyKSB7CiAgc2l6ZV90IGk7CiAgCiAgbG9uZyAqKnJldCA9IG1hbGxvYyhkMSpzaXplb2YobG9uZyopKTsKICBmb3IoaT0wOyBpPGQxOyArK2kpIHJldFtpXSA9IG1hbGxvYyhkMipzaXplb2YobG9uZykpOwogIHJldHVybiByZXQ7Cn0KCnZvaWQgbWF0cml4ZnJlZShsb25nICoqdCwgc2l6ZV90IGQxKSB7CiAgc2l6ZV90IGk7CiAgZm9yKGk9MDsgaTxkMTsgKytpKSBmcmVlKHRbaV0pOwogIGZyZWUodCk7Cn0KCmludCBtYWluKCkgewogIGxvbmcgKip0ID0gbWF0cml4YWxsb2MoMiwgNSk7CiAgdFsxXVszXSA9IDQ7CiAgbWF0cml4ZnJlZSh0LCAyKTsKfQ==