Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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



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

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

Код:

#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
Репутация: 10
По умолчанию

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однонаправленный список Си 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 11:02
[C] Однонаправленный список ordoss Помощь студентам 8 30.01.2010 15:43




05:33.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru