比较char**数组中的值

  • 本文关键字:数组 char 比较
  • 更新时间 :
  • 英文 :


我正在做一个C语言项目。我是C的新手,所以如果这是一个简单的问题,请原谅我。

我有一个char **,它是一个包含各种值的数组。在所有的值中,我对值包含的内容没有任何问题,除了一个值在字符串上保持核心转储。

下面是我的代码:
if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0)
{
    //Do something
}

P_UNIQUECOLS是一个枚举,它是检索值的索引。如果我查看GDB中的值,我可以看到它应该包含YN,但由于某种原因,应用程序正在崩溃。

谢谢你能提供的任何帮助。

使用字符串字面值"Y",而不是char字面值'Y',因为strcmp()有两个const char*参数。

编译时使用高级警告,不要忽略它们(最好将它们视为错误)。

'Y'是单个字符,strcmp需要一个指针。如果你的编译器没有给你一个警告,说明你没有把它和正确的选项一起使用。

"Y"代替'Y'

是,strcmp接受两个参数作为字符串。

如果应用程序崩溃,并得到分段错误,这意味着您正在访问一些未经授权的内存位置。检查是否为"reportParameterArray"分配了内存。

最新更新