首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个无符号整数的逐位或(程序崩溃)

两个无符号整数的逐位或(程序崩溃)
EN

Stack Overflow用户
提问于 2012-09-04 08:24:11
回答 1查看 88关注 0票数 0

如果我的问题不是很清楚,很抱歉。我有一个这样的结构:

代码语言:javascript
复制
typedef struct
{
    uint32_t typeSet;
}DataTypeTagInfo;

以下函数用于统一两个typeSet:

代码语言:javascript
复制
DataTypeTagInfo* unifyTagInfo(DataTypeTagInfo* tag1, DataTypeTagInfo* tag2){
    if(tag1 == NULL) return tag2;
    else if(tag2 == NULL) return tag1;
    tag1->typeSet |= tag2->typeSet;
    return tag1;
}

程序在执行以下行时退出:

代码语言:javascript
复制
    tag1->typeSet |= tag2->typeSet;

在一个示例运行中,我有以下值:

代码语言:javascript
复制
tag1->typeSet = 3917954189
tag2->typeSet = 2536589

没有错误信息。就这么放弃吧。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2012-09-04 08:47:43

您显示的代码是完全正确的。因此,在中止时,tag1tag2很可能是无效的指针。这与您发布的代码没有任何关系。指针可以通过许多方式设置为无效。

为了弄清楚发生了什么,我会从仔细检查调用位置的代码设置tag1tag2开始,然后-如果没有出现答案-继续使用valgrind检查内存覆盖错误。

注意,这就是C(++)如此具有挑战性的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12255368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档