IE盒子

搜索
查看: 146|回复: 1

C语言memcpy会在什么情况下不正常工作?

[复制链接]

3

主题

7

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-2-12 18:43:39 | 显示全部楼层 |阅读模式
这是我在win10下用gcc将一个动态分配空间拷贝给一个全局数组时发现的问题.
使用block主要是为了避开作用域, 说不定以后会做成宏, 上下文倒是没有控制流代码.
struct T{
    struct A{
        int type, offset; char name[init_name_len];
    } *attrs;
    void *loc_spz;
    int attr_amt,attr_len,amt,tup_siz,loc_len;
    char name[init_name_len];
};
//typedef ...
A ta_arr [50];
T t;
...
{for(int i=0;iattr_amt;i++) ta_arr[ta_amt+i] = t->attrs;}
//memcpy(&ta_arr[ta_amt], t->attrs, t->attr_amt);memcpy粘贴完毕以后, 使用时会发现结构体的某个非指针分量(offset)并没有被粘贴过去, 而修改为类似的代码块以后可以正常工作.
回复

使用道具 举报

1

主题

10

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 5 天前 | 显示全部楼层
支持楼主,用户楼主,楼主英明呀!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表