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

warning: ‘lectors’ is used uninitialized in this function - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая создает очередь из произвольного количества элементов http://www.cyberforum.ru/cpp-beginners/thread1092273.html
Составить программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух строк. Не получается-Организовать обработку каждого элемента: печать строк из информационной части и их первых символов. Вот наработки: #include <iostream> #include <conio.h> #include <stdio.h> #include <stdlib.h> using namespace std;...
C++ Как добавить в вектор содержимое вложенных каталогов Здравствуйте, подскажите пожалуйста как добавить в вектор содержимое внутренних каталогов, а не только тех которые содержатся в указанной папке. Есть код, в котором в командной строке задаешь аргумент(нужную папку), аргумент argv, далее содержимое указанно папки заносится в вектор и выводится, помогите пожалуйста дописать код так, что бы в вектор заносились все вложенные папки всех вложенных... http://www.cyberforum.ru/cpp-beginners/thread1092255.html
C++ Сколько съел Винни-Пух на 15-ый День Рождения
Винни-пух на свое день рождение ведает столько еды сколько съел на двух предыдущих на первых двух днях он съел по 100 шрам нужноузнать сколько он съел на 15-й день рождение
C++ Сдающий карты. "cards_remaining--" одинаково работает и с "--", и без
Всем привет, возник вопрос по поводу программы "сдающий карты", программа с книги "С++ без страха", автора не помню, не столь важно) Вот код программы #include <iostream> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; int rand_0toN1(int n); void draw_a_card(); int select_next_available(int n);
C++ Пользователь вводит 8 чисел, вывести числа которые повторяются 2 или больше раз http://www.cyberforum.ru/cpp-beginners/thread1092208.html
Я понимаю, в средние века за такой код сжигали на костре. Но я только учусь. Подскажите как сделать правильнее. #include <iostream> using namespace std; int main() {
C++ Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение Задача: Ввести матрицу размером 10*5. Для не отрицательных элементов вычислить их произведение. вообще не понимаю как это сделать помогите плз разобраться заранее большое спс подробнее

Показать сообщение отдельно
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
08.02.2014, 20:53     warning: ‘lectors’ is used uninitialized in this function
Здравствуйте.
Делаю вот костяк программы.
Пока компилируется без ошибок, но с предупреждениями, относительно четырех указателей (как в названии темы)

Вырезки с кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include "init.hpp"
 
int main()
{
   Lector* lectors;
   Auditr* auditrs;
   Discpl* discpls;
   Group* groups;
 
   init(lectors, auditrs, discpls, groups);
   return 0;
}
C++
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
#include "init.hpp"
 
void init(Lector* lctrs, Auditr* audtrs, Discpl* discpls, Group* groups)
{
   cout << "\nLets add some data\n";
 
   cout << "How many lectors you want to add?\n > ";
   int lectors_to_add = 0;
   cin >> lectors_to_add;
   lctrs = add_lectors(&lectors_to_add);
 
   cout << "\nHow many auditories you want to add?\n > ";
   int auditrs_to_add;
   cin >> auditrs_to_add;
   audtrs = add_auditrs(&auditrs_to_add, &lectors_to_add, lctrs);
 
   cout << "\nHow many disciplines you want to add?\n > ";
   int discpls_to_add;
   cin >> discpls_to_add;
   discpls = add_discpls(&discpls_to_add);
 
   cout << "\nHow many groups you want to add?\n > ";
   int groups_to_add;
   cin >> groups_to_add;
   groups = add_groups(&groups_to_add);
}
 
Lector* add_lectors(int* ptr_lectors_to_add)
{
   Lector* lctrs = new Lector[*ptr_lectors_to_add]; //inner variable
   for (int i = 0; i < *ptr_lectors_to_add; ++i)
      lctrs[i].fill_up();
 
   return lctrs;
}
 
// ... и далее подобные функции
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include "types.hpp"
 
Lector* add_lectors(int*);
Auditr* add_auditrs(int*, int*, Lector*);
Discpl* add_discpls(int*);
Group* add_groups(int*);
 
void init(Lector*, Auditr*, Discpl*, Group*);
Что к чему? Как сделать их (массивы в main) инициализированными? Подозреваю, что пока то вообще не массивы, а просто указатели. Как же сделать их динамически расширяющимися, чтобы не использовать vector?


И второй вопрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Есть метод:
void Auditr::set_owner(int* ptr_lectors_to_add, Lector* lctrs)
{
   cout << "Who own this auditory? (enter an digit as answer)\n> ";
   for (int j = 0; j < *ptr_lectors_to_add; ++j)
   {
      cout << j + 1 << ". ";
      lctrs[j].show_name();
      cout << '\n';
   }
   int answer = 0;
   cin >> answer;
   owner = lctrs[answer - 1];
}
Почему здесь не говорится, что я пока не перегрузил оператор =, чтобы последняя инструкция выполнялась (там мой класс)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru