[英]Compare value in char** array
我正在研究一個C項目。 我是C的新手,請原諒我,如果這是一個簡單的問題。
我有一個char **
,它是一個包含各種值的數組。 在所有值中,除了在strcmp上保持核心轉儲的值之外,我沒有問題。
以下是我的代碼:
if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0)
{
//Do something
}
P_UNIQUECOLS
是一個枚舉,它是從中檢索值的索引。 如果我查看GDB中的值,我可以看到它包含Y
或N
,但由於某種原因,應用程序崩潰了。
感謝您的任何幫助,您可以提供。
使用"Y"
這是一個字符串文字,而不是'Y'
這是一個char
的文字,為strcmp()
有兩個const char*
參數。
在高級別編譯警告並且不要忽略它們(最好將它們視為錯誤)。
'Y'
是單個字符, strcmp
需要一個指針。 如果您的編譯器沒有給您至少一個警告,那么您沒有使用正確的選項。
使用"Y"
代替'Y'
。
是的,strcmp將兩個參數都作為字符串。
如果應用程序崩潰,並且出現分段錯誤,則意味着您正在訪問某些未經授權的內存位置。 檢查“reportParameterArray”是否已分配內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.