簡體   English   中英

如何使用指向指針的指針在 main 中返回?

[英]How to do for return in main with pointer to pointer to pointer?

void    ft_destroy(char ***factory);

int     main()
{
    char name[] = "sebastian";
    char *pt1 = &name;
    char **pt2 = &pt1;
    char ***pt3 = &pt2;
    printf("%s", ft_destroy(pt3));
    return (0);
}
error: incompatible pointer types initializing 'char *' with an expression of type 'char (*)[10]'
      [-Werror,-Wincompatible-pointer-types]
        char *pt1 = &name;

name是 10 個char的數組,它是一個char [10] 所以&name是一個指向char數組的指針,它是一個char (*)[10] 由於pt1是一個char * ,您應該為其分配一個指向char的指針。

因為name是一個char數組,所以name[0]是一個char ,而&name[0]是一個指向char的指針。 所以你可以做char *pt1 = &name[0]; .

如果只使用name , C 會自動將其轉換為指向其第一個元素的指針,因此您也可以執行char *ptr1 = name; .

char *pt1 = &name;

&namechar[10]類型的地址,您需要char (*pt1)[10]來存儲它。

也許你可以做如下。

char *pt1 = &name[0]; //or char *pt1 = name;

在這種情況下&name[0]char *類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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