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

Работа с структурами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввести два числа. Меньшее заменить полсумой, а большее - удвоенным произведением http://www.cyberforum.ru/cpp-beginners/thread715411.html
Ввести два числа. Меньшее заменить полсумой, а большее - удвоенным произведением. Реализация: 1)отдельная пользовательская функция 2)Корректность входных данных должна проверяться: вложеные блоки TRY и перехват исключений в основной программе и в вызываемой функции помогите пожалуйста
C++ Прочитать txt и записать в другой txt файл Вот у меня например текстовый файл(Это 1 задание, осилил как-то), туда записан список студентов., мне нужно его прочитать (уже 2 задание)и записать в другой текстовый файл тот же список но уже с условием, выводить только 2 курс, и подсчетом суммы стипендии этих. Помогите написать пожалуйста!!! просто понятия не имею как. #include <iostream> #include <windows.h> #include <time.h> #include... http://www.cyberforum.ru/cpp-beginners/thread715408.html
STL значения итераторов нивелируются при передаче в функцию C++
Ну и зачем тогда весь этот хвалёный STL? Получается в функции значения векторов не изменить так, а только по индексу (в чём я теперь не уверен) либо работать со старыми добрыми массивами, которые не поведут... Каменный век какой-то. #include <stdio.h> #include <vector> #include <windows.h> using namespace std; vector <int> vec; bool f (vector<int>::iterator);
C++ sqrt c++
Всем привет. Не могу понять в чём у меня ошибка...обычная формула нахождения длины вектора по его координатам. a = sqrt((x2-x1)^2 + (y2-y1)^2); но мне почему то пишет огромное отрицательное шестизначное число.=\ как так?. #include<stdio.h> #include<locale> #include<math.h> #include<conio.h>
C++ Поиск и вывод из файла http://www.cyberforum.ru/cpp-beginners/thread715398.html
Здравствуйте ! Есть код #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { FILE *ff; int i; struct {char a; char b; int r;} b={{"Avtor1","Nazva1",1994},
C++ Подсчёт времени сортировки массива пузырька Проблема: всё время выводит 0.00000000000 Вопрос: как решить проблему? #include <stdio.h> #include <stdlib.h> #include <time.h> #include<windows.h> int main () { подробнее

Показать сообщение отдельно
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
01.12.2012, 19:04     Работа с структурами
generation472, ошибки фундаментальные. В структуре элемент не типа char, а типа char* что есть указатель на массив/элемент типа char. Отсюда выражение
Цитата Сообщение от generation472 Посмотреть сообщение
cin>> str[i].a;
что читаем, а главное куда? Где будут лежать считанные строки? память - то под них не выделялась. Это от непонимания указателей.Сделай или так
C++
1
2
3
4
struct struc{
    char a[BUFSIZ];
    int x;    
};
или выделяй память под каждую считанную строку. Например, так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void input(struc *str)
{
    char bufer[BUFSIZ];
 
    for(int i=0; i<5; i++  )
    {
        std::memset(bufer, 0, BUFSIZ);
        std::cout<<i+1<< "element structuri a" ;
        std::cin>> bufer;
 
        std::size_t len = std::strlen(bufer) + 1;
        str[i].a = new char [ len ];
        std::strcpy(str[i].a, bufer);
        str.a[ len - 1 ] = '\0';
 
        std::cout<<i+1<< "element structuri x" ;
        std::cin>> str[i].x;
 
    }
}
и не забыть далее освободить выделенную память.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru