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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
#1

Ошибка: Run-time check failure: variable 'C' is being used without being initialized - C++

04.02.2013, 20:29. Просмотров 1268. Ответов 22
Метки нет (Все метки)

Здравствуйте,
Помогите решить одну проблему. Есть задание написать программу, которая находит определитель матрицы и умножает две матрицы, введенные з клавиатуры.
В процесе решения задачи наткнулся на следующую проблему. После компиляции в строке 74 IDE выдает ошибку "Run-time check failure: variable 'C' is being used without being initialized".
По разному пробовал исправить, не получаеться никак.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
 
class macierz
{
    void create_table();
    int rows;
    int columns;
public:
    int getc(){return columns;}
    int getr(){return rows;}
    macierz(int,int);
    macierz();
    ~macierz();
    float **cells;
};
 
//заполнение матрицы, если вызвана функцией
macierz::macierz(int a,int b)
{
    rows=a;
    columns=b;
    create_table();
}
 
//Заполнение матрицы вручную
macierz::macierz()
{
    cout<<"Количество строк матрицы = ";
    cin>>rows;
    cout<<"Количество столбцов матрицы = ";
    cin>>columns;
    create_table();
    for(int i=0;i<rows;i++){
        for(int j=0;j<columns;j++){
            cout<<"a("<<i+1<<","<<j+1<<") = ";
            cin>>cells[i][j];
    }}
}
 
//Освобождение памяти
macierz::~macierz()
{
    for(int i=0;i<rows;i++)
        delete []cells[i];
    delete []cells;
}
 
//Выделение памяти под матрицу
void macierz::create_table()
{
    cells=new float*[rows];
    for(int i=0;i<rows;i++)
        cells[i]=new float[columns];
    }
 
//Функция умножения двох матриц. Функция недоделана
macierz func(macierz A,macierz B)
{
    macierz C(A.getr(),B.getc());
    return C;
}
 
void main()
{
    macierz *A,*B,*C=NULL;//macierz&rC=*C;
    cout<<"Матрица A:"<<endl;
    A=new macierz;
    cout<<"Матрица B:"<<endl;
    B=new macierz;
    *C=func(*A,*B);
    getchar();getchar();getchar();
}
2. Второй вопрос. Что значит или как трактовать ":" после CSome( int size )?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class CSome
{
public:
  CSome( int size ) : p( 0 ), sz( size ) { p = new int[a]; }
  ~CSome() { delete p; }
...
  operator int*() { return p; }
  operator const int*() const { return p; }
 
private:
  int* p;
  int  sz;
};
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2013, 20:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка: Run-time check failure: variable 'C' is being used without being initialized (C++):

Ошибка Run-Time Check Failure #3 - The variable 'k' is being used without being initialized - C++
2. Даны два вектора и найти угол между ними и модуль векторного произведения векторов X и Y. При вычислении использовать формулу: , где...

Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. - C++
int fun_mult(int *mas) { int zero; for (int i=0; i&lt;10; i++){ if (mas=0) zero=i; else break; }

Ошибка: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized - C++
в чём ошибка (просьба подправить) #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace...

Ошибка Run-Time Check Failure #3 - The variable 'y' is being used without being initialized - C++
Выскакивает вот тавкая вот ошибка, подскажите как исправить. Ошибка выскакивает, когда я ввожу переменную &quot;e&quot;, уже во время отладки...

Ошибка Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. - C++
Run-Time Check Failure #3 - The variable 'chcount' is being used without being initialized. Что за ошибка?

Run-Time Check Failure #3 - The variable 'k' is being used without being initialized - C++
Дано целое число n&gt;1 . Найти наименьшее целое число k , при котором выполняется неравенство k&gt;n^2+n #include&lt;iostream&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
05.02.2013, 02:53  [ТС] #16
всем спасибо за дискусии, решил проблему следующим способом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void func(macierz A,macierz B,macierz&cC)
{
    //macierz C(A.getr(),B.getc());
    cC.cells[0][0]=23;
    cout<<A.getr()<<B.getc()<<cC.cells[0][0];//getchar();getchar();
    //return C;
}
 
void main()
{
    macierz *A,*B;//,*C;//macierz&rC=*C;
    cout<<"Macierz A:"<<endl;
    A=new macierz;
    cout<<"Macierz B:"<<endl;
    B=new macierz;
    //C=new macierz(A->getr(),B->getc());
    macierz *C=new macierz(A->getr(),B->getc());
    func(*A,*B,*C);
    //macierz C=func(*A,*B);
    getchar();getchar();getchar();
}
abit, не могу спасибки поставить, кнопка отсутствует
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,926
05.02.2013, 02:57 #17
Qeeet, вы память выделяете, но не очищаете.
И по стандарту
3.6.1 Main function
2) An implementation shall not predefine the main function. This function shall not be overloaded. It shall
have a return type of type int, but otherwise its type is implementation-defined. All implementations shall
allow both of the following definitions of main:
int main() { /* ... */ }
and
int main(int argc, char* argv[]) { /* ... */ }
In the latter form argc shall be the number of arguments passed to the program from the environment
in which the program is run. If argc is nonzero these arguments shall be supplied in argv[0]
through argv[argc-1] as pointers to the initial characters of null-terminated multibyte strings (ntmbs
s) (17.5.2.1.4.2) and argv[0] shall be the pointer to the initial character of a ntmbs that represents the
name used to invoke the program or "". The value of argc shall be non-negative. The value of argv[argc]
shall be 0.
main must have int return statement!

Добавлено через 28 секунд
C++
1
2
3
delete A;
delete B;
delete C;
1
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
05.02.2013, 03:19  [ТС] #18
Цитата Сообщение от MrGluck Посмотреть сообщение
Qeeet, вы память выделяете, но не очищаете.
И по стандарту

main must have int return statement!

Добавлено через 28 секунд
C++
1
2
3
delete A;
delete B;
delete C;
с очисткой памяти понятно. Но зачем main должна быть всегда int, непонятно
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,926
05.02.2013, 03:21 #19
Qeeet, я же вам стандарт процитировал. Делается все это для того, чтобы ОС знала, как завершилась программа. Ведь, возможно, данные из неё могут впоследствии использоваться в следующей, вызываемой из конвейера.
2
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
05.02.2013, 04:34  [ТС] #20
у меня возникла проблема с матрицей которая была создана конструктором macierz::macierz(int,int). ячейки этой матрицы не пусты.
я добавил в код функцию присвоения всем ячейкам матрицы значения 0, но функция не работает почемуто. До cout'а не доходит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void macierz::clear_macierz()
{
    for(int i=0;i>rows;i++)
        {for(int j=0;j>columns;j++)
    {cells[i][j]=0;cout<<"ololo";}}
}
 
macierz::macierz(int a,int b)
{
    rows=a;
    columns=b;
    create_table();
    clear_macierz();
}
Добавлено через 9 минут
помогите очистить матрицу любым способом неручным, и желательно в класе.
Время поджимает
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,926
05.02.2013, 04:39 #21
Qeeet, посмотрите на сравнение:
i>rows
j>columns

Добавлено через 2 минуты
Qeeet, вы можете при объявлении обнулить элементы.
1
Qeeet
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 14
05.02.2013, 04:56  [ТС] #22
Цитата Сообщение от MrGluck Посмотреть сообщение
Qeeet, посмотрите на сравнение:
i>rows
j>columns

Добавлено через 2 минуты
Qeeet, вы можете при объявлении обнулить элементы.
ооо, какой ужас, лучше я пойду спать. Завтра надеюсь так тупить не буду

Добавлено через 9 минут
Цитата Сообщение от MrGluck Посмотреть сообщение
Qeeet, вы можете при объявлении обнулить элементы.
а как это сделать?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,926
05.02.2013, 16:37 #23
Цитата Сообщение от Qeeet Посмотреть сообщение
а как это сделать?
C++
1
2
3
4
5
6
7
8
9
10
//Выделение памяти под матрицу
void macierz::create_table()
{
    cells=new float*[rows];
    for(int i=0;i<rows;i++)
    {
        cells[i]=new float[columns];
        for(int j=0;j<columns;j++)
            cells[i][j] = 0;
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 16:37
Привет! Вот еще темы с ответами:

Run-Time Check Failure #3 - The variable 'c' is being used without being initialized - C++
Вводится последовательность целых чисел. Для каждого числа последовательности проверить, представляют ли его цифры строго ...

Run-Time Check Failure #3 - The variable 'c' is being used without being initialized - C++
VS 2013 После введения знака выдает такую ошибку Как можно исправить? #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using...

Run-Time Check Failure #3 - The variable 's' is being used without being initialized - C++
Ребят в чем может быть косяк запарился уже. Выдает эту ошибку я хз что с ней делать:( #include &quot;stdafx.h&quot; #include&lt;iostream&gt; ...

C++ - Run-Time Check Failure #3 - The variable 'c' is being used without being initialized - C++
Нужно исправить код. Вводится последовательность целых чисел. Для каждого числа последовательности проверить, представляют ли его цифры...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.02.2013, 16:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru