【发布时间】:2014-07-19 11:17:31
【问题描述】:
我很好奇如何将指向函数中的指针的指针作为参数传递。我检查了不同的问题,例如 - C: How to pass a double pointer to a function ,有人讨论为了将指针传递给指针,您需要将指针传递给指向指针的指针。例如 如果我有
char **lines= malloc(sizeof(char) * MAXWORDNUM);
int y;
for (y = 0; y < MAXWORDNUM; y ++)
{
lines[y] = malloc(sizeof(char) * MAXWORD);
}
我需要声明一个函数吗
func(char ***lines)
? 在我的代码中,我通过以下方式创建了一个函数 -
func(char *lines[])
它仍然适用于
**lines
那么这两种方式有什么区别呢?创建函数是否正确 func(char *lines[]) for **lines?
【问题讨论】:
-
这个函数调用是个大问题:
malloc(sizeof(char) * MAXWORDNUM);,因为sizeof(char)和sizeof(char*)不一样。 -
对您链接的问题 (stackoverflow.com/questions/4339201/…) 的接受答案向您展示了如何解决您的问题。我倾向于关闭您的问题,因为它与您链接的问题重复。请解释您的问题为何不同。
-
@alk 链接问题无法解决我的问题,即 func(char ***lines) 和 func(char *lines[]) 之间有什么区别。我解释说,在我的代码中,我使用了与链接问题中描述的不同的方式 - 它有效。我的问题是两种方式的比较,而链接的问题只是关于如何传递双指针......