如何解决char数组的pid_t的初始值是什么?
当我试图了解流程时,我发现了一些东西
int main(){
pid_t pid,w;
printf("value of w: %d\n",w);
return 0;
}
运行上面的代码时,w的值为0。到目前为止没有问题。
但是
当我在如下代码中添加char数组时
int main(){
pid_t pid,w;
char arr [3];
printf("value of w: %d\n",w);
return 0;
}
每次运行w的值都会随机变化。我不明白为什么的原因,char数组的作用是什么?
解决方法
变量的值不确定。当您读取不确定的值时(根据pid_t
的定义,在某些情况下可能适用或可能不适用-通常不适用的例外情况),程序的行为是不确定的。
由于某些未知的原因,您选择期望对程序进行更改后行为保持不变。当程序未定义时,不能保证程序的行为,这种期望并不是合理的假设。
,在C和C ++中,声明变量时不会自动对其进行初始化。如果无法初始化它们,则这些变量的状态是不确定的。您需要更改代码以初始化pid_t变量:
int main(){
pid_t pid = 0;
pid_t w = 0;
char arr [3] = {0,0};
printf("value of w: %d\n",w);
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。