我不明白爲什麼編譯器警告我關於在此代碼中傳遞不兼容的指針類型:(在這種情況下void *
和void **
之間有什麼區別)(我不知道這是否有所作爲,但我正在使用gnu99
C版)傳遞給void **而不是void *會讓編譯器抱怨類型,爲什麼?
void someFunc(void ** foo) {
printf("%s\n", *foo);
}
int main() {
char * text = "some text";
someFunc(&text);
return 0;
}
和在預先
好吧,理解,所以當我有一個交換功能,如 無效交換( ** a, ** b)交換指針,而不是值。如果我想使它通用(類型不敏感或其他)什麼是正確的方法來做到這一點? –
Sasquash
@Sasquash對不起,我沒有明白你的意思。爲了交換'T'類型的兩個值就足夠了'T *'。 – 2013-08-07 07:08:58