c - C中如何确定空数组的值

标签 c arrays memory

<分区>

这是代码。

int main(int argc, char *argv[])
{
    char name[5];

    printf("%s\n",name);

    system("PAUSE");
    return 1;
}

printf 函数输出 ©。为什么它使用那个字符?在不同的情况下使用其他字符。我正在尝试更多地了解内存在 C 中的工作原理。

干杯:)

编辑 - 谢谢大家。您所有的回答对我都非常有用。

最佳答案

tl;dr:该值未确定。

根据编译器的不同,数组的值是不确定的(大多数情况下)或零(一些特定的编译器会清理堆栈)。

大多数情况下,数组只是从堆栈中取出的一些内存空间,因此根据您使用它之前的内存区域,您可以在其中有许多不同的值。

关于c - C中如何确定空数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235900/

相关文章:

javascript - Highcharts .update 修改原始数据数组

c - 结构数组段错误

c - 一次对多个扫描线使用 jpeg_write_scanlines 是否更好?

c - 为什么忽略字符串循环?

c - 如何管理 C 函数中的任意参数

arrays - VBA中如何判断数组是否为空?

c - C语言中可以存储数字10,000,000的最小数据类型是什么?

delphi - Delphi XE 中 Web 服务中的 TXSDateTime/TXSDecimal 内存泄漏

c++ - `delete this;` 语句期间发生了什么?

c - 如果没有收到 FIN/ACK 或 RST,如何终止 tcp 服务器程序中的 tcp 连接