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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2012, 20:24   #1
NikSlim
 
Регистрация: 18.11.2012
Сообщений: 7
По умолчанию Добовление элемента в однонаправленный список

Здрасте, форумчане Вобщем пишу однонаправленный список на базе динамического массива, как-то коряво работает, а вернее даже сказать не работает, функция добавления элемента в список. Выглядит у меня это примерно так (не буду писать ненужные функции):

Код:
#pragma once
#include "stdafx.h"

struct ListElem // Список чисел, заданных в виде строки
{
	char *Number; // Число в виде строки
	ListElem *Next; // Указатель на следующий элемент
};
void  Add(ListElem *&buf, char *str) // Добавление элемента в список, первым после буферного
{
	ListElem *Help = new ListElem;
	Help->Next = buf->Next;
	Help->Number = new char(strlen(str) + 1);
	strcpy(Help->Number, str);
	Help->Number[strlen(str)] = 0;
	buf->Next = Help;
ну и в общем все это событие бурно не работает в вызове

Код:
int main()
{
	setlocale(LC_CTYPE, "russian");
	int Count;
	char *bufer; // буферный массив
	ListElem *List = Create();
	cout << "Сколько элементов?" << endl;
	cin >> Count;
	cout << "Enter" << endl;
	bufer = new char[7];
	cin.getline(bufer, 7);
	delete [] bufer;
        bufer = new char [7];
	for (int i = 1; i <= Count; i++)
	{
		cin.getline(bufer, 7);
		Add(List, bufer);
	}
        return 0;
}
Вооот, циферки считываются в буферный массив, а оттуда не копируются. Создание списка работает 100% верно. И кстати, в этой самой функции Add вылезает warning-ахтунг, ошибка с4996, мол strlen у меня unsafe функция, а что это значит я хз, на с++ третий месяц только учусь. В чем беда, где я накосячил? Вроде норм должно быть.

Мимоходом вопрос не по теме: я правильно делаю в строке Help->Number[strlen(str)] = 0; или strlen и нулевой символтоже копирует и эта строка лишняя?
NikSlim вне форума Ответить с цитированием
Старый 18.11.2012, 20:58   #2
NikSlim
 
Регистрация: 18.11.2012
Сообщений: 7
По умолчанию

Отбой тревоге, разобрался в чем проблема. В отладчике смотрел не на те указатели, и функция на самом деле верно написана, а ошибка оказывается в другом совсем месте была. Можно закрывать
NikSlim вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однонаправленный список Си nikitasnv Помощь студентам 6 02.07.2012 21:13
однонаправленный список Arthur92 Общие вопросы C/C++ 5 03.07.2011 20:51
однонаправленный список Nata-Tata Помощь студентам 3 14.04.2011 11:28
линейный однонаправленный список с++ kate311893 Общие вопросы C/C++ 0 07.12.2010 10:02
[C] Однонаправленный список ordoss Помощь студентам 8 30.01.2010 14:43