Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
1

Ошибка с преобразованием char

17.07.2012, 00:51. Просмотров 481. Ответов 5
Метки нет (Все метки)

В задачке дана структура и проттотип функции. Функция должна присваивать имя структуре. Но мне выдаёт ошибку:
невозможно преобразовать "const char *" в "char [40]"
структура:
C++
1
2
3
4
5
struct golf
{
    char fullname[Len];
    int handicap;
};
функция
C++
1
2
3
4
void setgolf(golf & g,const char * name, int hc)
{
g.fullname=name;
g.handicap=hc;}
Пытался менять на char name, char name [40] и др. - результат 1 и тот же
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2012, 00:51
Ответы с готовыми решениями:

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что "char *concat(char *,...)": невозможно...

Ошибка с распознаванием строки на русском языке и преобразованием ее
Доброго времени суток! Я новичок в си++, есть такая задача: необходимо реализовать шифр Вернама....

Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь(
Всем доброго дня! У меня такая проблемка.... написал программу, но сначала она ругалась на Cannot...

Ошибка: call of overloaded 'strchr(char&, char)' is ambiguous
Здравствуйте, прога почему-то ругается на функцию strchr, вот кусок кода: #include...

5
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.07.2012, 00:59 2
Цитата Сообщение от Fooly Посмотреть сообщение
g.fullname=name
fullname - это грубо говоря реальный массив
присвоение массиву значения указателя - не имеет смысла
тут вы должны скопировать содержание этого указателя в массив
делается это так
C
1
2
3
strcpy (g.fullname, name); // опасный вариант, может быть переполнение массива, если имя слишком длинное
memcpy (g.fullname, name, strlen(name) + 1); // копирование с точки зрения данных, опасно по той же причине
snprintf (g.fullname, 40, "%s", name); // безопасный вариант
1
5473 / 4868 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.07.2012, 01:05 3
Удалил.
0
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
17.07.2012, 01:46 4
Цитата Сообщение от Fooly Посмотреть сообщение
g.fullname=name;
можно в принципе(но это не значит,что это хорошо) использовать const_cast
C++
1
g.fullname = const_cast<char *>(name);
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.07.2012, 02:05 5
alexey31415, и? код от этого стал рабочим чтоли?
0
5473 / 4868 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.07.2012, 02:11 6
Цитата Сообщение от alexey31415 Посмотреть сообщение
1 g.fullname = const_cast<char *>(name);
Компилятор не пропускает, да и смысл? Как правильно написал alex_x_x, в массив нужно копировать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2012, 02:11

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка: initializing argument 2 of `char* fgets(char*, int, FILE*)
Написать программу, которая считывает текст из файла и выводит на экран только строки,...

Ошибка в работе с файлами: error: incompatible types in assignment of ‘char*’ to ‘char* [255]’
Суть задания Есть файл допустим 1.txt нужно выполнить обработку этого файла а результат вывести в...

Ошибка error: invalid conversion from ‘char’ to ‘const char*’
Доброго времени суток, компилятор выдает, такую ошибки: ......

[Ошибка] invalid conversion from 'const char*' to 'char*' [-fpermissive]
Решал задачи сам по себе, наткнулся на очень интересную. Вот сама задача: Вы оператор пуска ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.