【发布时间】:2019-11-09 16:26:46
【问题描述】:
对于我正在学习的课程,我仍在尝试围绕 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];
【问题讨论】:
-
Coyld 你请说明
g_reservations[seat][0]矩阵是如何声明的?是char**吗? -
在上面编辑以包含全局声明...
-
在
strncmp中使用g_reservations[seat]。第二个索引表示要比较的字符串的字符。 -
注意:
stncmp相等时返回 0! -
注意:最后你正式返回一个字符,而函数应该返回一个无符号整数。最后,使用
return 0;