char **p 是「指向 char* 的指標」,常用於儲存字串陣列(即 char*[])。
char *strArray[] = {"Apple", "Banana", "Cherry"};
char **p = strArray; // p 指向首元素地址
for (int i = 0; i < 3; i++) {
printf("%s\n", p[i]); // 等價於 *(p+i)
}
char **p = malloc(n * sizeof(char*));
for (int i = 0; i < n; i++) {
p[i] = malloc(len * sizeof(char));
strcpy(p[i], "some string");
}
// 使用完畢需逐個 free(p[i]) 再 free(p)
char **p 與 char p[][MAX_LEN] 不同,前者為指標陣列,每行長度可變;後者為固定寬度二維陣列。char **argv 或 char *argv[]。