可以strcmp()比较动态字符数组和静态字符数组
Can strcmp() Compare a Dynamic Character Array with a Static Character array?
也许这是一个愚蠢的问题,但我之所以问这个问题,是因为我使用strcmp()
来比较动态数组和静态数组,但它似乎给出了错误的结果。数组应该相等,但strcmp()
返回false。当我暂停程序时,这些数组之间唯一不同的两件事是它们的内存位置。
我不能向你展示整个代码,但这是我函数的一部分,其中有两个变量:
stock * Table::retrieveStock(const char tick[])
{
uint8_t index = hashing(tick);
if (table[index])
{
bool test = strcmp(table[index]->data->getTick(), tick);
//irrelevant code
下面是一些指针在Table
类中声明的方式:
struct node
{
stock * data;
node * next;
node()
{
stock();
next = nullptr;
}
node(stock *& item)
{
data = item;
next = nullptr;
}
};
node ** table;
我有一个类对象的数组,不管怎样,重点是我在比较两个刻度值,它们应该相等。我正在从具有getTick()
功能的对象中取出一个:
const char * stock::getTick() const
{
return tick;
}
并且一个被传递到函数:CCD_ 5。我对这里的代码出了什么问题一无所知。我很想给你们更多的代码,但我看不出它会怎么做,只会让你们更难解决这个问题。
编辑:也许这会有所帮助;我只是想到了。这正是我的编译器所说的值:
curr->data 0x005d93e8 {tick=0x005d9f38 "TSLA" name=0x005da100 "2" value=2.00000000 ...} stock *
和
tick 0x004afb20 "TSLA" const char *
strcmp()
对于匹配返回0(对于不匹配返回非零)。它不会像您预期的那样返回true
或false
。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- 字符数组中的元素数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用字符数组作为 Map 中的键
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 按顺序声明的字符数组重叠
- 在 C++ 中字符串的大小与字符数组的大小
- 寻找一种更好的方法来表示无符号字符数组
- 如何打印 2D 字符数组C++
- 从字符数组的元素中减去'a'是什么意思
- 我是否不正确地集中了这些字符数组?