[2340] Re:関数の戻り値について
    
    投稿者:(ぱ)こと管理人
    2023/08/05 14:19:52
    
    
    >C言語では、「配列へのポインタ」は関数の戻り値にはできないのでしょうか?
>VisualC++でやってみたのですが、無理でした。
できない理由は特にないので、普通にできます。以下、掛け算九九の表をmalloc()で
確保するプログラムです(これは「普通」には見えない、というならまあもっともですが)。
#include <stdio.h>
#include <stdlib.h>
int (*alloc99(void))[9]
{
    return malloc(sizeof(int) * 81);
}
int main(void)
{
    int (*array99)[9];
    int i, j;
    array99 = alloc99();
    for (i = 1; i < 10; i++) {
        for (j = 1; j < 10; j++) {
            array99[i - 1][j - 1] = i * j;
        }
    }
    for (i = 1; i < 10; i++) {
        for (j = 1; j < 10; j++) {
            printf("\t%d", array99[i - 1][j - 1]);
        }
        printf("\n");
    }
}
ただ、
>"func()[0].hoge"みたいなことがやってみたかったのですが、C言語では無理なのでしょうか。
上記のやってみたいことからすると、そもそもやりたいことは「配列へのポインタ」を
返すことではないようにも思えます。"func()[0].hoge"と書きたいのなら、やりたいことは、
「構造体へのポインタ」を返すことではないでしょうか。