我仍在尝试将C的指针和字符串缠在我要上的类上。在下面的示例中,g_reservations [] []是一个全局变量(我知道这是不理想的,但是我无法更改)。
错误:警告C4047'function':'const char *'与'char'的间接寻址级别有所不同EconoAirBeta ... 299
* passenger是一个指针,是否创建指向全局的指针?似乎没有必要...
我该如何进行这项工作?我觉得我缺少一个我的大脑似乎无法掌握的难以置信的简单概念。...
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 '\0';
}
全局声明:
#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)