[英]Double pointer assigning char array value to char array, of structure using char pointer
[英]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.