Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 15:00   #1
system_error
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию Функция создания нового элемента списка C++

Здравствуйте! Помогите, пожалуйста, исправить ошибку в функции.
Код:
1 struct LIST \\объявление списка
2  {
3   int n;
4   LIST *pnext;
5  };
6 LIST *head=NULL;
7
8 LIST *create(char *p) \\функция добавления элемента в список
9  {
10   LIST *pa=new LIST;
11   if(!pa)
12    {
13     ShowMessage("Память не выделена");
14     return 0;
15    }
16   strcpy(pa->n, p);
17   pa->pnext=NULL;
18   return pa;
19  }
при запуске компилятор выдает такие ошибки, указывая на 16 строку:
E2034 Cannot convert 'int' to 'char *'
E2342 Type mismatch in parameter '__dest' (wanted 'char *', got 'int').
Используется Borland C++Builder 2006.
system_error вне форума Ответить с цитированием
Старый 03.05.2011, 15:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
int n;
Код:
char *p
Код:
 strcpy(pa->n, p);
p51x вне форума Ответить с цитированием
Старый 03.05.2011, 16:47   #3
system_error
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию

Я не прошу написать за меня код. Я прошу объяснить, в чем я ошибаюсь.
Нужно преобразовать int в char, чтобы прошла компиляция?
Если объявлен список
Код:
struct LIST
 {
  char n;
  LIST *pnext;
 };
,
то результат не меняется.
Я пыталась найти в интернете, как решить эту проблему, но ничего внятного не нашла.
system_error вне форума Ответить с цитированием
Старый 03.05.2011, 17:10   #4
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Ошибаетесь в том, что копируете в n не строку, а указатель на нее.
Попробуйте p разименовать.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 03.05.2011, 19:16   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

2 malinoff
Дважды не правильно.

2 system_error
Определитесь, что вам надо. (Я понимаю вы просто скопировали где-то код, но все же). В списке у вас число, в функции для создания элемента строка.

П.С. Строка и чар это разное.
p51x вне форума Ответить с цитированием
Старый 03.05.2011, 21:14   #6
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
2 malinoff
Дважды не правильно.
Точно. Не подумал.
system_error, если хотите char * записать в int, используйте функцию atoi.
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление элемента массива при подключении нового пользователя Lokos Работа с сетью в Delphi 10 01.11.2010 02:27
Удаление последнего элемента из списка и реверс этого списка. Goose Общие вопросы C/C++ 8 16.05.2010 16:12
Без создания нового списка, а с мофидикацией исходного REztor Помощь студентам 0 08.12.2009 18:32
Без создания нового списка, а с мофидикацией исходного REztor Помощь студентам 0 10.11.2009 00:28
Автоматизация создания нового письма в MS Outlook. SANIOK_AV Общие вопросы Delphi 1 13.04.2009 10:17