【发布时间】:2012-10-23 15:36:30
【问题描述】:
当我尝试比较指针数组(最初为 NULL)和 char 指针时:
int main(int argc, char **argv){
char **list = (char**)malloc(20*sizeof(char)+1);
char *input = "La li lu le lo";
if(*list[0] != input[0]) { //or if(list[0][0]!=input[0])
printf("false: %s", strdict[0]);
}
}
我经常收到警告:
指针与整数的比较
必须采取什么措施才能消除此警告? 如果我将其修改为:
if(*list[0] != input[0])
警告已删除,但程序崩溃。 提前感谢您的帮助。
【问题讨论】:
-
定义“运行失败”。它不编译?它崩溃了吗?它说“假:...”?
-
好吧,1) 删除 malloc
cast并关闭(。 2) 您正在比较char*list[0] 和charinput[0]。在 C 中无效;你需要做list[0][0] != input[0]3)list未初始化 -
它当然不能编译。失踪 ”;”和一个不应该在那里的大括号:P
-
添加一些关于您希望通过该程序完成什么的信息可能会有所帮助。例如,您是否想查看列表中的第一个字符串是否等于另一个字符串?代码存在一些逻辑问题,难以确定意图是什么。
-
不确定谁批准了该编辑,但请不要更正/更改 OPs 代码,这就是答案的用途。
标签: c