如果问题不清楚或听起来很愚蠢,我很抱歉,但我对 C/C++ 编程很陌生,所以请温柔点
我有一个这样的结构
struct foo
{
int a = 05;
char b;
char c;
}foo_var;
我有一个字符指针数组
char *Arrpointer[sizeof(foo)];
.. 然后我使用 foo_var.b 和 foo_var.c 初始化了 b 和 c
我想将所有内容,即 a、b、c 值复制到这个 *Arrpointer
我想到使用strcpy
strcpy(Arrpointer, ????)
但如你所见,我被困住了 任何帮助将不胜感激
此外,这个 Arrpointer 是动态的,意味着任何 no。结构内容应该很容易存储在其中,例如 Struct foo、bar 等。
最佳答案
由于两个变量都不是字符串,因此 strcpy
不合适; memcpy
就是您所需要的。但是,您有一个未初始化的指针数组,并且不指向任何有效的内容。
Arrpointer[n] = malloc( sizeof(foo_var) ) ;
memcpy( Arrpointer[n], foo_var, sizeof(foo_var) ) ;
使用与 struct foo
中的字节数一样多的元素创建 Arrpointer
似乎不太可能是您想要的。另一个问题是,一旦复制了结构,您就不再有任何信息来确定存储的结构或它们的大小,因此整个“设计”是可疑的,但如果问题只是按照标题而不是比当时有点困惑的 body :
memcpy( pointer_to_destination, pointer_to_source, size_of_data ) ;
是通用答案。
关于c - 如何在 C 中将所有结构体元素复制到 char * 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23441529/