二维字符串数组的传参时与指针互转时的问题

  1. 二维数组如何传参

二维字符串数组,转char**会导致的问题,以及编译报错

要想得到正确的结果,需要按如下方式去写传参:

#include <stdio.h>
#include <string.h>

//int char_arr_copy(char **dest) //这样定义传参类型将导致编译报错,在低版本的编译器下或者没有报错但是得不到正确结果
int char_arr_copy(char dest[][20])
{
    strcpy(dest[0],"123");
    strcpy(dest[1],"456");
    strcpy(dest[2],"789");
    return 3;
}
int main()
{
    char result[10][20]; 
    memset(result, 0, sizeof(result));
    int num = char_arr_copy(result);
    for(int i = 0; i < num; i++)
    {
        printf("%s\n",result[i]);
    }
    return 0;
}

2.二维数组变量名与char **区别

posted @ 2024-04-12 15:58  HL棣  阅读(18)  评论(0编辑  收藏  举报