2013-03-31 583 views
3

下面顯示的代碼有什麼問題。警告C4047:'=':'char'與'char *'的間接級別不同。

char filter[2] = {'\0'}; 
*filter = (char *)calloc((unsigned int)buf.st_size + 1, sizeof(unsigned char)); 

根據我的理解,改變陣列位置沒有問題吧?爲什麼我問這是因爲警告,

Warning 1 warning C4047: '=' : 'char' differs in levels of indirection from 'char *' 

有什麼想法嗎?

明白了,將代碼更改爲。由於@ouah

char *filter = {'\0'}; 
filter = (char *)calloc((unsigned int)buf.st_size + 1, sizeof(unsigned char)); 
+2

「按照我的理解,改變陣列位置沒有問題吧?」有,這是不可能的。但這不是代碼所要做的。 –

+0

現在是C還是C++?如果是C,則不要使用'malloc()'的返回值。 – 2013-03-31 15:28:08

+0

@DanielFischer我的意思是說,即使我最初分配了一個兩字節的char數組,我稍後可以分配一塊內存,並將數組指向它。這不可能嗎? –

回答

9

*filterchar和你分配一個char *值。

+0

是的,明白了。問題已更新。謝謝。 –

相關問題