我在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 ****** *',或任何其他类型的对象指针,你关心存储在其中。 –