检查空字符C++
Check for null character C++
我正在尝试测试存储在特定内存地址中的值是否为 NULL,我有这个,并且在调试中它将该地址中的字符值显示为"\0"。然而,它总是跳过这个IF语句。
这是正确的语法吗?我已确保地址设置为空。
if (test->address + length == NULL)
{
..code..
}
假设address
是一个char*
指针(或char[]
数组),你需要取消引用它才能访问char
值。那是
*(test->address + length)
或等效
test->address[length]
如果我理解正确,那么有效的语句将看起来像
if ( *( test->address + length ) == ' ' )
{
..code..
}
或
if ( test->address[length] == ' ' )
{
..code..
}
提供定义为字符数组或类型 char *
的指针的对象测试>地址类型
当然它会跳过这个if
。这是因为指针是算术规则。
-
test->address
是指针 -
test->address + length
是test->address + sizeof(T) * length
,其中T
是address
的类型。
改变:
if (test->address + length == NULL)
{
..code..
}
自
if (test->address[length] == 0)
{
..code..
}
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存