c - 使用 strcmp,初始化使指针来自整数而不进行强制转换

标签 c

void check_vertical_win(char A[rows][columns]){
    int i,j;
    char *str1=A[i][j];
    char *str2=A[i-1][j];
    char *str3=A[i-2][j];
    char *str4=A[i-3][j];
    int elegxos1;
    int elegxos2;
    elegxos1=strcmp(str1,str2);
    elegxos2=strcmp(str3,str4);
    for(j=0;j<6;j++){
        for(i=6;i>=3;i--){
            if(elegxos1==0 && elegxos2==0){
                printf("\nBill is the winner.\n");
            }
        }
    }
}

我想检查矩阵中的两个字符串是否相等,所以我使用函数 strcmp。然而,编译器给出警告:初始化使指针来自整数而不进行强制转换。 (然后当我运行该程序时,它显示:Windows 正在检查我的问题的解决方案)。 我已经尝试了很多方法来寻找其他类似程序的错误,但我找不到。

最佳答案

void check_vertical_win(char A[rows][columns])

这需要一个字符矩阵。如果您有一个矩阵,其中每个条目都是一个字符串,那么它应该是:

void check_vertical_win(char* A[rows][columns])

此外,您在初始化变量 i 和 j 之前使用它们(它们包含垃圾):

int i,j;
char *str1=A[i][j];
char *str2=A[i-1][j];
char *str3=A[i-2][j];
char *str4=A[i-3][j];

关于c - 使用 strcmp,初始化使指针来自整数而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320165/

相关文章:

C:在驱动程序中链接不同的 C 文件?

c - 如何遍历这个由多个结构体、数组和指针组成的 C 数据结构?

c - 如果在函数中声明枚举,作用域是什么?

c - 用户输入数组大小 C

c - 全局变量始终初始化为零

c - 遗传算法实现中的奇怪事件

c - 在循环中使用scanf()和gets()读取用户输入不起作用

c++ - 相同功能的不同实现(c/c++)

在 C 中计算给定范围内的 3 的幂

c - C语言在二叉树中插入节点