2013-02-15 138 views
1

我有一個程序,我試圖編譯但它顯示編譯錯誤: 在第22行:「無效的操作數到二進制==」 我搜索了各種可用的解決方案,但不能'爲我的問題尋找解決方案。代碼如下:無效的操作數到二進制==

 #include <stdio.h> 

     typedef struct nx_string_t 
     { 
      char *buf; 
     }nx_string_t; 

     typedef struct nx_value_t 
     { 
      union 
       { 
       nx_string_t strng; 
       } 
     } nx_value_t; 

     void func(nx_value_t *vale); 

     void func(nx_value_t *vale) 
     { 
      if(vale->strng == NULL) // Error occurs here. 
      { 
        printf("its done");  
      } 
     } 
+0

請突出線22 – 2013-02-15 09:38:08

+1

如果這是你的實際代碼,我只想說,隨着rndmly delted vwels話mstly incmprehnsble。理解它們所需要的精神努力就是打字。 – molbdnilo 2013-02-15 11:18:40

回答

2

的比較應該是

if (vale->strng.buf == NULL) 

vale->strngnx_string_t類型的這不是一個指針,以便永遠不能NULL。但是,它的指針成員可能是NULL

+0

非常感謝您的幫助。它解決了。 – 2013-02-15 09:47:05

4

會員strngnx_string_t類型,它不是指針。

您必須對比較裏面的指針元素:

if(value->strng.buf == NULL) 
+0

非常感謝您的幫助。它解決了。 – 2013-02-15 09:46:34

+0

@ user2074923,考慮接受放鬆答案,如果它幫助你。 – StoryTeller 2013-02-15 10:20:16

相關問題