怎么样能改正这个char[]to char*的错误?

将字符串求反

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//求反函数
char *reverse(char arry[], int N) {
    int i;
    //char str[10];
    char *str;
    str = (char*)malloc(N * sizeof(char));
    for(i = 0; i < N; i ++) {
        str[i] = arry[N - i - 1];
    }
    return str;
}
//
int main() {
    int N;
    char str[10];
    gets(str);
    N = strlen(str);
    str = reverse(str, N);
    puts(str);
}


就是 str = reverse(str, N);这里的str【10】 与 reverse(char *,int)有问题。如果把reverse()里面的str定义为str【10】,那再main函数中传参时又会矛盾。

能否把问题说的更清楚点?图片说明

就是 str = reverse(str, N);这里的str【10】 与 reverse(char *,int)有问题。如果把reverse()里面的str定义为str【10】,那再main函数中传参时又会矛盾。