Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
#1

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

17.07.2012, 00:51. Просмотров 354. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2012, 00:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка с преобразованием char (C++):

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

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

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

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

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

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

5
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 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
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.07.2012, 01:05 #3
Удалил.
0
alexey31415
59 / 59 / 3
Регистрация: 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
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
17.07.2012, 02:05 #5
alexey31415, и? код от этого стал рабочим чтоли?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.07.2012, 02:11 #6
Цитата Сообщение от alexey31415 Посмотреть сообщение
1 g.fullname = const_cast<char *>(name);
Компилятор не пропускает, да и смысл? Как правильно написал alex_x_x, в массив нужно копировать.
0
17.07.2012, 02:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2012, 02:11
Привет! Вот еще темы с ответами:

Ошибка invalid conversion from 'const char*' to 'char*' - C++
Я в С++ новенький. Поэтому опыта еще нет, да и знаний мало. ПОдскажите пожалуйста, чего вылетает ошибка invalid conversion from 'const...

ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*') - C++
int main() { string fileName, currWord, currMax = &quot;&quot;; cin&gt;&gt;fileName; freopen(fileName, &quot;r&quot;, stdin); while...

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *" - C++
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p = strtok(s.c_str(), ' '); не нравится такое...

Ошибка: "invalid conversion from char* to char" - C++
Граждане,товарищи изучаю C++ и зациклился на проблеме,мне надо подсчитать количество букв в массиве введённом с клавиатуры#include...


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

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

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