tab是一个char数组。如果你想拥有一个字符串数组(一个char数组的数组),如[“user”,“root”,“sudo”],你可以使用
char **tab = (char **) malloc(sizeof(char *) * ngroups));
另请注意,malloc现在使用sizeof(char *)而不是sizeof(char)。
然后是:
tab[i] = gr->gr_name;
我假设gr_name是指向组名的指针,在函数后仍可访问。
现在我可能已经理解了你的问题,因为它不是很清楚。 无论哪种方式,如果你返回tab,你想要返回它的指针,而不是取消引用它:
return tab;
如果你回来了 *tab ,你将返回第一个字符 tab 指着。
*tab
tab