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

перезапись ряда одним и тем же значением - C++

Восстановить пароль Регистрация
 
podhornyi96
0 / 0 / 0
Регистрация: 11.10.2013
Сообщений: 14
28.03.2014, 23:16     перезапись ряда одним и тем же значением #1
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
struct MyStruct
{
    char *surname;
};
 
MyStruct obj[10];
 
int n = 5;
 
void addTable() {
    
    char val[15];
    cin >> val;
    obj[n].surname = val;
 
    n++;
 
    for(int i=0; i<n; i++) {
        cout << obj[i].surname << endl;
    }
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 
 
    obj[0].surname = "qw";
    obj[1].surname = "qwe";
    obj[2].surname = "qwer";
    obj[3].surname = "qwert";
    obj[4].surname = "qwerty";
 
    addTable();
    addTable();
 
    system("pause");
}
при вызове функции добавления рядов, все предыдущее добавленные ряды перезаписываются последним введенным значением. Пожалуйста помогите найти ошибку. Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 23:16     перезапись ряда одним и тем же значением
Посмотрите здесь:

C++ Что убдет если new вызвать 2 раза с одним и тем же указтелем??
C++ Почему два раза создаётся объект с ОДНИМ И ТЕМ ЖЕ ИМЕНЕМ?
C++ В массиве каждую группу рядом стоящих одинаковых элементов заменить одним и тем же значением
Разработать алгоритм и программу для удаления из введенного текста слов, которые начинаются и заканчиваются одним и тем же символом C++
C++ Разработать алгоритм и программу для удаления из введенного текста слов, которые начинаются и заканчиваются одним и тем же символом.
После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию C++
После каждого четного элемента массива вставить 2 элемента с тем же значением, полученный массив отсортировать C++
C++ Двумерный массив заполняется одним и тем же числом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
29.03.2014, 00:34     перезапись ряда одним и тем же значением #2
Надо заменить это
C++
1
19 obj[n].surname = val;
на это:
C++
1
2
    obj[n].surname = (char*) malloc(16);
    strcpy(obj[n].surname,val);
Иначе вы копируете не массив символов, а только его адрес.
Yandex
Объявления
29.03.2014, 00:34     перезапись ряда одним и тем же значением
Ответ Создать тему
Опции темы

Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru