将char * c []分配给结构中的双指针

时间:2011-10-04 22:21:49

标签: c pointers struct

我有这样的结构:

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

和一个声明为

的二维char数组
char *c[32];

我在循环中填充char数组,最后将它传递给struct * s。这样做的正确方法是什么?

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

两者似乎都不起作用。

2 个答案:

答案 0 :(得分:2)

c是一个包含32个指向char的指针的数组,即char *[32]类型的指针,并且作为任何数组,它可以自动且平凡地衰减成指向数组的第一个元素的指针,属于char **类型。这似乎就是你所需要的。

&c,但是是指向char的32个指针数组的类型指针,即char *(*)[32],你不需要它!

您的问题似乎与s和小箭头有关。尝试:

s.x = c;
<> BTW,说不起作用没有复制实际错误消息那么有用......

答案 1 :(得分:0)

s *t;
t->x = c;

Works for me。为什么它不起作用?什么是错误消息?也许你混淆了typedef s这是一个类型,而变量s