Como fazer um tipo de retorno de matriz da função C?

Eu tentei retornar o nome da matriz como mostrado abaixo. Basicamente eu estou tentando fazer o teste de função retornar um array que pode ser usado no main. Você poderia me aconselhar sobre o que eu preciso ler mais para descobrir como realizar uma função como essa?

#include <stdio.h>

int test(int size, int x){
    int factorFunction[size];    
    factorFunction[0] = 5 + x;
    factorFunction[1] = 7 + x;
    factorFunction[2] = 9 + x;
    return factorFunction;
}

int main(void){
    int factors[2];
    factors = test(2, 3);
    printf("%d", factors[1]);
    return 0;
}

Eu recebo os erros do compilador:

smallestMultiple.c:8: warning: return makes integer from pointer without a cast
smallestMultiple.c:8: warning: function returns address of local variable
smallestMultiple.c: In function ‘main’:
smallestMultiple.c:13: error: incompatible types in assignment