相关疑难解决方法(0)

测试有效性指针(C/C++)

如果指定的指针是"有效的",有没有办法确定(当然是以编程方式)?检查NULL很简单,但像0x00001234这样的东西呢?当试图取消引用这种指针时,会发生异常/崩溃.

首选跨平台方法,但平台特定(适用于Windows和Linux)也可以.

更新澄清: 问题不在于陈旧/释放/未初始化的指针; 相反,我正在实现一个从调用者获取指针的API(比如指向字符串的指针,文件句柄等).调用者可以(有意或无意地)发送无效值作为指针.如何防止崩溃?

c c++ validation null pointers

80
推荐指数
10
解决办法
10万
查看次数

C - 检查是否已分配整数

如何确定是否取消分配整数?

int i; /* no assignment */

if (/* conditional statement here to check if int i is unassigned or not */) {
   printf("Integer is unassigned!\n");
} else {
   printf("Integer is assigned!\n");
}
Run Code Online (Sandbox Code Playgroud)

c int initialization

28
推荐指数
3
解决办法
4万
查看次数

结构与布尔字段默认初始化?

我有以下用例,一个带有一些boolean和int变量的结构

struct a {

    int field1;
    bool field2;
    bool field3;

};
Run Code Online (Sandbox Code Playgroud)

我正在重构这段代码,并为struct编写构造函数,问题是字段的默认初始化.

我不是在批评任何语言构造,但理想情况下我希望null成为语言本身的一部分

我的意思是我应该能够为结构a定义为

a : field1(null.int), field2(null.bool), field3(null.bool) {}
Run Code Online (Sandbox Code Playgroud)

C++不允许它,因为没有定义null.int或null.bool.在C++中唯一的方法是

a: field1(-1), field2(false), field3(false) {}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
2
解决办法
5828
查看次数

标签 统计

c ×2

c++ ×2

initialization ×1

int ×1

null ×1

pointers ×1

validation ×1