簡體   English   中英

比較char **數組中的值

[英]Compare value in char** array

我正在研究一個C項目。 我是C的新手,請原諒我,如果這是一個簡單的問題。

我有一個char ** ,它是一個包含各種值的數組。 在所有值中,除了在strcmp上保持核心轉儲的值之外,我沒有問題。

以下是我的代碼:

if (strcmp(reportParameterArray[P_UNIQUECOLS],'Y') != 0)
{
    //Do something
}

P_UNIQUECOLS是一個枚舉,它是從中檢索值的索引。 如果我查看GDB中的值,我可以看到它包含YN ,但由於某種原因,應用程序崩潰了。

感謝您的任何幫助,您可以提供。

使用"Y"這是一個字符串文字,而不是'Y'這是一個char的文字,為strcmp()有兩個const char*參數。

在高級別編譯警告並且不要忽略它們(最好將它們視為錯誤)。

'Y'是單個字符, strcmp需要一個指針。 如果您的編譯器沒有給您至少一個警告,那么您沒有使用正確的選項。

使用"Y"代替'Y'

是的,strcmp將兩個參數都作為字符串。

如果應用程序崩潰,並且出現分段錯誤,則意味着您正在訪問某些未經授權的內存位置。 檢查“reportParameterArray”是否已分配內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM