[英]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.