C - 检查是否已分配整数

28 c int initialization

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

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)

Bin*_*ier 22

你不能.它将具有"未定义"内容,这意味着它将包含当时在该内存位置中发生的事情.

...除非i在全局范围内声明,否则它将初始化为零.


Amb*_*ber 8

C本质上不支持这一点 - 就像它本质上不支持对数组的边界检查一样.这是速度/效率和安全之间的权衡.

通常......初始化变量.


小智 5

这很简单.你知道它是未分配的,因为你没有初始化它.

  • 显然,因为你永远不会有一个在运行时设置的变量. (10认同)