繁体   English   中英

将char数组初始化为'\\ 0'时会发生什么?

[英]What happens when a char array is initialized to '\0'?

我有一个大小为512的字符数组ie

char buffer [512];

某个点之后的此变量被修改为此

buffer [40] = '\0';

这个赋值对变量做了什么? 它是否将数组中的前40个char初始化为null?

不会。它将值NUL存储在阵列中的第41个位置。

将前40个字符初始化为NUL

memset(buffer, '\0', 40);

要在编译时将整个缓冲区初始化为NUL,请尝试

char buffer[512] = {0}; 

要么

char buffer[512] = "";

要在运行时初始化它,请尝试

memset(buffer, '\0', sizeof (buffer));

分配第41字符阵列中,以\\0 因此,现在字符串由字符在数组的前40个元素中表示的内容组成,即0到39个索引(假设在任何前面的元素中没有其他NUL字符 - 谢谢Kerrek SB !!)。
希望这可以帮助!

它将字符'\\0' (即NUL字符)分配给第41个数组元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM