#include <stdio.h>
void Ex(void *_ret, int ret_len, int choice){
if(choice==1){
int *ret = _ret;
int i;
for(i=0; i<ret_len; i++){
ret[i] = i;
}
} else {
int (*ret)[ret_len] = _ret;
int i, j;
for(i=0; i<ret_len; i++){
for(j=0; j<ret_len; j++){
ret[i][j] = i*j;
}
}
}
}
int main(void) {
int first[10];
Ex(first, 10, 1);
int second[20][20];
Ex(second, 20, 2);
printf("first[4] = %d\n", first
[4]); printf("second[3][4] = %d\n", second
[3][4]);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKICAgIHZvaWQgRXgodm9pZCAqX3JldCwgaW50IHJldF9sZW4sIGludCBjaG9pY2UpewogICAgICAgIGlmKGNob2ljZT09MSl7CiAgICAgICAgICAgIGludCAqcmV0ID0gX3JldDsgICAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgZm9yKGk9MDsgaTxyZXRfbGVuOyBpKyspewogICAgICAgICAgICAgICAgcmV0W2ldID0gaTsKICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbnQgKCpyZXQpW3JldF9sZW5dID0gX3JldDsgICAgICAgICAgICAKICAgICAgICAgICAgaW50IGksIGo7CiAgICAgICAgICAgIGZvcihpPTA7IGk8cmV0X2xlbjsgaSsrKXsKICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8cmV0X2xlbjsgaisrKXsKICAgICAgICAgICAgICAgICAgICByZXRbaV1bal0gPSBpKmo7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgfQoKICAgIGludCBtYWluKHZvaWQpIHsKICAgICAgICBpbnQgZmlyc3RbMTBdOwogICAgICAgIEV4KGZpcnN0LCAxMCwgMSk7CiAgICAgICAgaW50IHNlY29uZFsyMF1bMjBdOwogICAgICAgIEV4KHNlY29uZCwgMjAsIDIpOwogICAgICAgIAogICAgICAgIHByaW50ZigiZmlyc3RbNF0gPSAlZFxuIiwgZmlyc3RbNF0pOwoJCXByaW50Zigic2Vjb25kWzNdWzRdID0gJWRcbiIsIHNlY29uZFszXVs0XSk7CgogICAgfSA=