问题描述
- C语言结构体之间的复制
-
怎么实现C语言中一维结构体与二维结构之间的复制,比如我现在有两个结构体,都是XML_DATA类型的,其中一个是m_data[10],另外一个是m_sava[10][10],为什么执行strcpy(m_save[k++],m_data);语句不能把m_data中的所有内容复制给m_save了?求大神指点呀,谢谢!
解决方案
最简单的是memcpy函数
解决方案二:
C语言中结构体变量复制的例子
C语言之结构体
c语言中的结构体
解决方案三:
strycpy是用来在字符串之间进行复制,而你结构体它是组合类型数据结构
如果你的结构体都是标准数据类型,那么可以直接用memcpy/memmove (memmove更好,可以防止内存地址重叠))等来进行内存数据的整块复制
解决方案四:
strcpy()是复制字符串的要以0结尾,你的结构体具体是什么结构?
解决方案五:
建议使用内存拷贝函数比较简单
解决方案六:
我觉得错误的原因是因为:
strcpy(m_save[k++],m_data);中strcpy函数当执行时其中K++并不会累加,就如int k = 2; sizoef(K++);执行完后,k的值仍然为2。
所以建议你用for循环来进行赋值,
for(int i = 0; i < 10; ++i)
{
strcpy(m_save[i],m_data);
}
应该可以的
解决方案七:
按你的需求,内存复制 memcpy 最靠谱。
时间: 2025-01-20 13:44:04