Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
1

Запись указателя на строку в массив

19.08.2011, 15:50. Показов 2279. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Вот у меня проблемка появилась, не знаю, что делать. Помогите пожалуйста!
Есть структура
C++
1
2
3
4
5
struct golf
{
       char fullname[Len];
       int handicap;
};
и прототип функции
C++
1
void setgolf(golf & g, char *name, int hc);
этой функции надо передать имя структуры, полное имя игрока в гольф и его гандикап(handicap)<- не знаю, что это такое

Вот вызов функции
C++
1
setgolf(ann, "Ann Birdfreee", 24);
А вот и сам функция
C++
1
2
3
4
5
void setgolf (golf & g, char *name, int hc)
{
     g.fullname = name;
     g.handicap = hc;
}
проблемма в том, что name - указатель на char, а g.fullname это массив и компиль не даёт
их приравнять, пишет: incompatible types in assignment of `char*' to `char[40]' . Как решить эту проблемму?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2011, 15:50
Ответы с готовыми решениями:

Возвращение неконстантного указателя из константного указателя на строку
Не могу до конца понять один момент. Допустим, у нас есть функция searchSymbol, которая принимает...

Запись в массив чисел написанных в строку через запятую
Реализовал программу для подсчета доходов расходов на windows forms. Данные(название категории и...

Проблема с описанием указателя на запись в процедуре
Здравствуйте. Прошу Вас: помогите, пожалуйста, найти ошибку. Это быстро! В общем, у меня в...

Возвращение указателя на соответствующую строку
Доброго времени суток. Есть задача: по номеру дня недели вывести его название Есть код: #include...

22
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.08.2011, 10:06 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от germeticus
Если чистый С, то тогда уж так:
C
1
void setgolf (golf *g, char* name, int hc)
Цитата Сообщение от Olga_
Если чистый Си, то действительно так и только так
там нельзя сразу к метке структуры обращаться
0
1 / 3 / 4
Регистрация: 02.07.2011
Сообщений: 90
20.08.2011, 14:06  [ТС] 22
Спасибо всем всем всем! Кстати, а откуда взялось мнение, что я на С пишу? Я только С++ изучаю.
0
Заблокирован
20.08.2011, 21:18 23
Цитата Сообщение от germeticus Посмотреть сообщение
Если быть все же педантичным, то такой код будет побезопасней
C
1
2
strncpy(g->fullname, name,sizeof(g->fullname) - 1);
     g->fullname[sizeof(g->fullname) - 1] = '\0';
Ну и конечно обработать исключение, когда длина name больше fullname.
Вот только не надо меня поправлять! Ваш код ничем не безопаснее, а лишь демонстрирует то, что вы чувствуете неуверенность, как работает strncpy. Только и всего! Но это не имеет отношение к С++, и тем более безопасности кода, а имеет отношение лишь к тому, что вы четко не знаете работу strncpy, а потому занимаетесь всякими глупостями!
0
20.08.2011, 21:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2011, 21:18
Помогаю со студенческими работами здесь

Возврат указателя на строку из фукнции
Снова я пришел к вам со строками. Читаю &quot;Как программировать на С++&quot; и там везде пишут про...

Передача указателя на строку в функцию
Нужно написать функцию, которая бы удаляла из строки &quot;все вхождения заданного символа в эту...

Вернуть строку в качестве указателя
Как добавлять элементы в строку вида char* string = &quot;blablabla&quot;; Либо как вернуть массив символов...

Не выводит строку из-за нулевого указателя
Здравствуйте, почему не выводит даже значение указателя b, когда я в cout добавляю указатель a (Без...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru