我在C.有一個問題,修改參數我有這樣的功能:沒有回報
int test(void *data);
我想改變數據這個功能,但我不希望另一個原型(不使用無效** )。實際上,數據等於無效此功能。
#include <stdio.h>
#include <stdlib.h>
int
test(void *data)
{
data = "toto";
return 1;
}
int
main()
{
void *d;
if (test(d) != 1) {
printf("erreur\n");
}
printf("résultat : %s\n", (char *) d); // displays "résultat : (null)"
return 0;
}
請幫助我。 ;)
我想知道你爲什麼要避免使用'test(void ** data)'。你的問題的答案是「是的,但這是非常糟糕的做法」,因爲它會相當混亂和容易出錯。 – gdlmx
'void *'可以包含任何對象指針。包括指向另一個指針的指針。所以'void **'是完全不必要的,因爲'void *'可以表示一個'void *',一個'void **',一個'void *****',一個'int ****** *',或任何其他類型的對象指針,你關心存儲在其中。 –