Когда я пишу функцию, как показано ниже, и использую ее в main()
, она не работает.
Почему это происходит? (Я начинающий).
void addBst(char *name, char *num);
int main(void)
{
addBst("a", "b");
return 0;
}
чтобы объявить char, вам нужно использовать одинарные кавычки.
@MohsanAli Конечно, но здесь нет ни одного char
.
Кстати, пожалуйста, не помечайте вопросы программирования с помощью редактора, который вы использовали, если только это не имеет отношения к вопросу (чего в данном случае явно нет). Также упоминается в вики тега : «НЕ используйте этот тег в вопросах, касающихся кода, который просто оказался написанным в Visual Studio».
В C++ строковый литерал — это массив const char[N]
, где N
— длина строки, включая завершающий нуль.
Начиная с C++11, незаконно назначать строковый литерал неконстантному указателю char*
, как это делает ваш код. Вместо этого вам нужно использовать указатель const char*
, например:
void addBst(const char *name, const char *num);
Литеральные строки в C++ на самом деле представляют собой константные массивы символов. И, как уже упоминалось, начиная со стандарта C++11, вы должны использовать для них указатели
const char*
.