[英]What does char*** mean in C?
我需要帮助来了解char ***的含义以及如何初始化char ***类型的变量。
例如,如果有一个函数可以读取文件的行,同时跟踪行数并打印出每行及其对应的数字:
void read_lines(FILE* fp, char*** lines, int* num_lines){}
在这种情况下char ***代表什么,我将如何初始化变量行?
这是一个指向char
的指针。 在这种情况下,很有可能是输出参数。 由于C按值传递参数,因此输出参数需要额外的indirect级别。 也就是说, read_lines
函数要给调用方一个char**
,并且要通过一个输出参数来实现这一点,它需要使用一个指向 char**
的指针 。 调用它可能需要做的只是:
char** lines = null;
int num_lines;
read_lines(fp, &lines, &num_lines);
另请参见C编程:另一个函数中的malloc() 。
我需要帮助来了解char ***的含义...
char***
类型是一个指针。 指向char **
指针。 p作为指向char的指针的指针
char*** p;
...以及如何初始化char ***类型的变量。
char*** p1 = NULL; // Initialize p with the null pointer constant.
char *q[] = { "one", "two", "three" };
char*** p2 = &q; // Initialize p2 with the address of q
char ***p3 = malloc(sizeof *p3); // Allocate memory to p3. Enough for 1 `char **`.
....
free(p3); // free memory when done.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.