【发布时间】:2012-03-02 15:34:15
【问题描述】:
我的结构如下:
typedef struct{
char static_data[10];
int a;
int b;
} my_ds;
我已将其初始化如下:
my_ds * ds = (my_ds *)malloc(sizeof(my_ds));
memmove(my_ds->static_data, buf, len);
ds->a = c;
ds->b = d;
并在函数中传递它:
int my_fun(void ** data);
my_fun((void *)&ds);
my_fun 内部发生了什么,第一个字段 static[10] 已正确初始化,但其他两个值为零。我在这里错过了什么?
【问题讨论】:
-
char static[10]?你是如何声明一个名为static0.o 的字段的? -
抱歉,已更正。
-
请显示编译和重现问题的真实代码。
-
真实代码太大,这里就不展示了,我会写一小段,可以编译并贴在这里,可以重现问题。
-
memmove()?你的意思是 memcpy() 或 strcpy() 甚至 strncpy() !
标签: c linux data-structures