Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 比较字符**数组中的值_C - Fatal编程技术网

C 比较字符**数组中的值

C 比较字符**数组中的值,c,C,我正在做一个C项目。我是C语言的新手,如果这是一个简单的问题,请原谅我 我有一个char**,它是一个包含各种值的数组。在所有的价值观中,我对这些价值观所包含的内容没有任何问题,除了一个价值观在strcmp上不断倾倒堆芯的价值观 下面是我的代码: if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0) { //Do something } p_UNIQUECOLS是一个枚举,它是从何处检索值的索引。如果我查看GDB中的值,我可以

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

我有一个
char**
,它是一个包含各种值的数组。在所有的价值观中,我对这些价值观所包含的内容没有任何问题,除了一个价值观在strcmp上不断倾倒堆芯的价值观

下面是我的代码:

if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0)
{
    //Do something
}
p_UNIQUECOLS
是一个枚举,它是从何处检索值的索引。如果我查看GDB中的值,我可以看到它或者包含
Y
或者
N
,但由于某种原因,应用程序正在崩溃

谢谢你能提供的帮助

使用字符串文本的
“Y”
,而不是
字符的
“Y”
作为两个
常量字符*
参数


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

'Y'
是一个单字符,
strcmp
需要一个指针。如果您的编译器没有给您至少一个警告,则说明您没有使用正确的选项


使用
“Y”
而不是
“Y”

是,strcmp将两个参数都作为字符串


如果应用程序崩溃,并且出现分段错误,这意味着您正在访问一些未经授权的内存位置。检查“reportParameterArray”是否已分配内存

并注意编译器的警告,或者找一个更好的编译器!谢谢,这很有效。没有任何编译器警告或错误。这是一个非常旧的服务器,我必须在其上构建,因此编译器不是很好