【发布时间】:2015-02-06 21:59:08
【问题描述】:
我正在阅读他们的幻灯片:
int current = 0;
buffer[current]=0x00;
其中缓冲区只是一个字符数组char buffer[300];
如果 0x00 是 null 的表示,我们将其替换为 NULL buffer[current]=NULL 在编译时会出现以下错误:
assignment makes integer from pointer without a cast
有人能解释一下buffer[current]=0x00; 是什么意思吗?这会检查数组列表的结尾吗?
【问题讨论】:
-
它将数组的第一个元素设置为“十六进制”0?
-
那是我的猜测。
-
不要将
NULL指针与 NUL 字节混淆。它们听起来相似但又不同。 -
@Rizier123 当你可以分配 0 时为什么要使用十六进制?
-
这里真正的问题是缓冲区是用来保存一个字符串,还是只是一个小整数数组。你没有提供足够的背景来回答这个问题。但是,使用
0x00来终止字符串是不寻常的。通常,使用字符常量'\0'来终止字符串。
标签: c hex character-arrays