2010-05-06 148 views
0

好的,我有一個奇怪的問題。我有這樣一段代碼:指針問題

int *p; 
int test; 
p=&test; 

在Visual C++表示,在我exsisting項目中,我得到這個錯誤:

missing type specifier - int assumed. 
'p' : 'int' differs in levels of indirection from 'char *' 
'initializing' : cannot convert from 'char *' to 'int' 

但在創建新的項目,相同的代碼是好的。請問什麼問題?

+7

該錯誤與您在此處顯示的代碼無關。 – AraK 2010-05-06 09:21:13

+2

顯示實際的可編譯代碼 - 項目中可能存在導致問題的其他地方 – Mark 2010-05-06 09:22:02

+2

這段代碼不完整;你可以使用整個程序來獲得更多的上下文嗎? – 2010-05-06 09:22:06

回答

1

如果不同項目上的相同代碼產生不同的結果,我猜你可以認爲問題不在代碼中,而是在項目中。

我建議你在兩個項目文件之間做一個差異,以便快速查看可能出現的錯誤。

1

您是否將該代碼放入函數中?你不能在函數之外編寫任意的C++代碼。

int main() { 
    int *p; 
    int test; 
    p=&test; 
} 
2

此代碼之前的內容可能會破壞事情(更多的上下文可能有所幫助)。也許test是一個破壞你的代碼含義的宏。