2014-12-03 37 views
1

我對C非常陌生(多年以後)。我使用lcc64並具有以下聲明=的操作數有非法類型

char *logMessage = strdup(argv[1]); 

我不知道爲什麼我得到的錯誤

"operands of = have illegal types 'pointer to char' and 'int" 

有什麼建議?

+2

你有'的#include '? – zch 2014-12-03 22:29:04

+1

'strdup'是一個非標準擴展。你需要'#include '*和*你需要確保'strdup'是可見的。對於gcc,你可以通過* not *使用-std = cNN來完成後者,其中'NN'是'90','99'或'11'來指定C標準的一個版本。 – 2014-12-04 03:05:46

+0

strdup()可以追溯到C語言的開頭,所有的C庫都有它。這使得它成爲一個組織批准的標準。 – Andras 2014-12-04 03:22:19

回答

1

你需要包括<string.h>申報的strdup()爲返回的char *,否則編譯器認爲它返回一個int

+0

哎呀,什麼zch說 – Andras 2014-12-03 22:37:15

+1

不要自己聲明'strdup'。 – 2014-12-04 03:06:15

+0

哎呀,我有''在那裏,但它看起來太像一個標籤,並降價吞下它 – Andras 2014-12-04 03:12:57

相關問題