C 比较字符**数组中的值
我正在做一个C项目。我是C语言的新手,如果这是一个简单的问题,请原谅我 我有一个C 比较字符**数组中的值,c,C,我正在做一个C项目。我是C语言的新手,如果这是一个简单的问题,请原谅我 我有一个char**,它是一个包含各种值的数组。在所有的价值观中,我对这些价值观所包含的内容没有任何问题,除了一个价值观在strcmp上不断倾倒堆芯的价值观 下面是我的代码: if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0) { //Do something } p_UNIQUECOLS是一个枚举,它是从何处检索值的索引。如果我查看GDB中的值,我可以
char**
,它是一个包含各种值的数组。在所有的价值观中,我对这些价值观所包含的内容没有任何问题,除了一个价值观在strcmp上不断倾倒堆芯的价值观
下面是我的代码:
if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0)
{
//Do something
}
p_UNIQUECOLS
是一个枚举,它是从何处检索值的索引。如果我查看GDB中的值,我可以看到它或者包含Y
或者N
,但由于某种原因,应用程序正在崩溃
谢谢你能提供的帮助 使用字符串文本的“Y”
,而不是字符的“Y”
作为两个常量字符*
参数
使用高级警告进行编译,不要忽略它们(最好将它们视为错误)。'Y'
是一个单字符,strcmp
需要一个指针。如果您的编译器没有给您至少一个警告,则说明您没有使用正确的选项
使用“Y”
而不是“Y”
是,strcmp将两个参数都作为字符串
如果应用程序崩溃,并且出现分段错误,这意味着您正在访问一些未经授权的内存位置。检查“reportParameterArray”是否已分配内存 并注意编译器的警告,或者找一个更好的编译器!谢谢,这很有效。没有任何编译器警告或错误。这是一个非常旧的服务器,我必须在其上构建,因此编译器不是很好