Форум программистов, компьютерный форум CyberForum.ru

Неправильно сохраняет данные - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ find_first_of, разбор полётов http://www.cyberforum.ru/cpp-beginners/thread1071143.html
Есть задание: В произвольном тексте на английском языке, содержащем не более 10 строк, в каждой строке не более 80 символов. Заменить первую букву каждого слова символом «пробел». Слово – это группа символов, заключенная между разделителями (пробел, запятая, точка и т.д.). Полученный текст напечатать. Есть почти корректно работающая программа: #include <iostream> #include <string> using...
C++ Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. Из одномерного массива,состоящего из n целочисленных элементов, удалить отрицательные элементы, стоящие на четных местах. Сжать массив.Оставшиеся после удаления места заполнить нулями http://www.cyberforum.ru/cpp-beginners/thread1071135.html
C++ проверка и вывод
Разработать функцию rectPS(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям координат, по координатам (x1, y1), (x2, y2) его противоположных вершин (x1, y1, x2, y2 — входные, P и S — выходные параметры). В качестве результирующего значения функция должна возвращать истину, если прямоугольник не является вырожденным (т.е. одна из его сторон...
Массив. Есть ли четные числа в верхнем левом и нижнем левом углу? Поменять местами элементы в верхнем правом и нижнем правом углу C++
Создать массив размерностью M×N, элементы которого читаются из внешнего файла (*.txt, *.xls и т.п.). Вывести его на экран. Проверить: - есть ли четные числа в верхнем левом и нижнем левом углу; - поменять местами элементы в верхнем правом и нижнем правом углу.
C++ Найти все целые числа из промежутка от 1 до 300 у которых ровно пять дели-телей http://www.cyberforum.ru/cpp-beginners/thread1071083.html
Найти все целые числа из промежутка от 1 до 300 у которых ровно пять дели-телей.
C++ Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. Числа вводя Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. Числа вводятся с клавиатуры пользователем. подробнее

Показать сообщение отдельно
ShadowFirst
55 / 48 / 1
Регистрация: 31.10.2013
Сообщений: 161
14.01.2014, 16:20     Неправильно сохраняет данные
Заранее извиняюсь был не прав в своем первом ответе. Дело действительно в указателях. У вас то они одни и те же во всех случаях. Что бы использовать указатели вам нужно под это выделять память, то есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Addend(char* n, char* k, char* d){
        if (empty){
          empty=false;
          int size = strlen(n);
          name= new char [size];
          memcpy (name, n, size);
          size = strlen(k);
          key=new char[size];
          memcpy (key, k, size);
          size = strlen(d);
          data=new char[size];
          memcpy (data, d, size);        
          next=new phonebook;
        }  
        else 
            next->Addend(n,k,d);
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru