比较字符串和指针

Comparing Strings and pointers

我仍在努力研究 C 中的指针和字符串,以获得我正在学习的 class。在下面的示例中,g_reservations[][] 是一个全局变量(不理想,我知道,但我无法更改它)。

错误: 警告 C4047 'function':'const char *' 的间接级别不同于 'char' EconoAirBeta ... 299

*passenger是一个指针,那么创建一个指向global的指针呢?好像没必要...

我该怎么做?我觉得我错过了一些我的大脑似乎无法理解的非常简单的概念....

unsigned int FindSeatWithPassenger(const char *passengerName)
{
    unsigned int seat = 0;
    for (seat = 0; seat < NUM_SEATS; ++seat)
    {
        if ( strncmp(passengerName, g_reservations[seat][0], NAME_LENGTH) != 0) //error here with global variable
        {
            return seat;
            break;
        }
    }
    return '[=10=]';
}

全局声明:

#define NAME_LENGTH 10
#define NAME_BUFFER_LENGTH ( NAME_LENGTH + 1 )
char g_reservations[NUM_SEATS][NAME_BUFFER_LENGTH];

类型错误

正如错误所说

g_reservations[seat][0]char.

int strncmp(const char *s1, const char *s2, size_t n) 期望 char * 对应 s2

使用&g_reservations[seat][0]或简单地g_reservations[seat]

strncmp(passengerName, g_reservations[seat], NAME_LENGTH)