c - 尝试将二维字符串数组传递给函数并打印它

C 新手,传递指针有困难。 我正在尝试传递这个指向字符串 (char[]s) 的二维指针数组。我一直收到无法使用 %s 的错误,因为在函数调用中我将参数声明为 char。但是,如果我使用 %c,我只会打印“H”、“e”、“l”的前三个字符,然后出现段错误。

Error Code:
    format specifies type 'char *' but the argument has type 'char' [-Wformat]
                            printf("%s ", in[i][j]);
                                    ~~    ^~~~~~~~
                                    %c

建议?

void printArray(char *in[]){
int i;
int j;
for (i = 0; i < 3; i++){
    for (j = 0; j < 3; j++){
        printf("%c ", in[i][j]);
    }
}


 main(){
        char *arr1[3][3];
        arr1[0][0] ="Hello";
        arr1[0][1] = "World";
        arr1[0][2] = "Today";
        arr1[1][0] = "Is";
        arr1[1][1] = "September";
        arr1[1][2] = "28";
        arr1[2][0] = "th";
        arr1[2][1] = "2021";
        arr1[2][2] = "yay";
        char *j = arr1[0][0];
        int k; 
        int p;
        printf("Before: \n");
        printArray(&j);

重申一下,目标是发送字符串数组,然后在“printArray”函数中打印它们

抱歉,如果这是一个简单的问题,又是 C 语言的新问题

谢谢

最佳答案

改变
printArray(char *in[])

printArray(const char * in[][3])


printArray(&j)

打印数组(arr1)

然后,您应该可以使用 %s

您正在传递一维数组并希望在打印中将其用作二维数组。

https://stackoverflow.com/questions/69364214/

相关文章:

reactjs - 如何去除 Material-UI 对话框中的阴影?

python - 如何旋转图像以获得非空像素?

sql - 按可互换使用的值对分组

ios - GAD adLoader 委托(delegate)未被调用

android - 如何从 Webview 中访问摄像头?

c++ - 使用 std::memcpy 复制包含 boost::any 数据成员的对象

ios - 更改 iOS 15 中导航栏的当前颜色

reactjs - 如何实现react-dnd useDragLayer?

c - 打印 int_fast_32_t 等数据类型的可移植和正确方法是什么

loops - 如何在 Kotlin 循环内更改 for 循环的计数器变量值?