簡體   English   中英

將char * c []分配給結構中的雙指針

[英]Assigning char *c[] to a double pointer in structure

我有一個這樣的結構:

typedef struct stringd{
char **x;
}s;

和一個二維char數組,聲明為

char *c[32];

我在循環中填充了char數組,最后將其傳遞給struct * s。 正確的做法是什么?

s->x = &c; 
or 
s->x = c;

兩者似乎都不起作用。

c是由32個指向char的指針組成的數組,即char *[32]類型,並且與任何數組一樣,它可以自動平凡地衰減為指向數組第一個元素char **類型的指針。 這似乎是您所需要的。

&c是指向32個char指針數組的類型的指針,即char *(*)[32] ,您不需要那個!

您的問題似乎出在s和小箭頭上。 嘗試:

s.x = c;

順便說一句,說不起作用不如復制實際錯誤消息有用...

s *t;
t->x = c;

為我工作 為什么它完全不起作用? 錯誤消息是什么? 也許您混淆了typedef s (是類型)和變量s

暫無
暫無

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

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