簡體   English   中英

char ***在C中是什么意思?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM