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

Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.79
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:06     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
    int zero;
    
    for (int i=0; i<10; i++){
        if (mas[i]=0)
        zero=i;
        else break;
        
    }
    return zero;
}
в чем фейл?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:12     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #2
Цитата Сообщение от m1x Посмотреть сообщение
C++
1
2
3
if (mas[i]=0)
    zero=i;
else break;
На первой же итерации пойдет по ветке else, как следствие получим возвращение неинициализированной переменной.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.03.2012, 23:12     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #3
m1x, в том что условие ни разу не выполнилось (поскольку ты написал равно вместо == ) и переменная zero осталось неиницилизированной
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:14     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #4
А я исправленный код напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else break;
                
        }
        return zero;
}
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:14  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #5
Цитата Сообщение от sandye51 Посмотреть сообщение
m1x, в том что условие ни разу не выполнилось (поскольку ты написал равно вместо == ) и переменная zero осталось неиницилизированной
спасибо, но ошибка осталась
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:14     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #6
Mustik, а если там не будет нуля?
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:15  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #7
Цитата Сообщение от Mustik Посмотреть сообщение
А я исправленный код напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else break;
                
        }
        return zero;
}
аналогично
та же ошибка
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:21     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #8
Цитата Сообщение от m1x Посмотреть сообщение
int zero;
C++
1
int zero(-1);
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:23  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #9
для проверки сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;
                else zero=1111111;
                
        }
        return zero;
}
ввожу массив (с элементом равным нулю конечно же) и всегда получаю ответ 1111111
неправильно работает

Добавлено через 37 секунд
Цитата Сообщение от soon Посмотреть сообщение
C++
1
int zero(-1);
это как?
з.ы. все так же неправильно работает
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:24     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #10
m1x, сообщение #8 гляньте. А выводит 1111111 потому, что break нет.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.03.2012, 23:24     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #11
m1x, просто какое-то значение нужно изначально zero задать.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.03.2012, 23:25     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #12
Цитата Сообщение от m1x Посмотреть сообщение
это как?
А вот прямо так и запишите
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:26     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #13
Цитата Сообщение от m1x Посмотреть сообщение
аналогично
та же ошибка
Переменную zero нужно инициализировать.
Товарищ soon уже написал как это делается. Его запись аналогична
C++
1
int zero = -1;
.
А вам повезло, нашли еще одну с = вместо == .
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:28  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #14
где break должен стоять?
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
10.03.2012, 23:28     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #15
Цитата Сообщение от m1x Посмотреть сообщение
ввожу массив (с элементом равным нулю конечно же) и всегда получаю ответ 1111111
Так если у тебя последний элемент не будет равен 0, то zero будет равно 111111.
Может быть надо
C++
1
2
3
4
5
6
...
else
{
    zero = 111111;
    break;
}
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
10.03.2012, 23:29     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #16
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
#include <iostream>
#include <cstdlib>
#include <clocale>
 
template <typename T>
int find_zero(const T* array, unsigned int size)
{
    T test = T();
    
    for (unsigned int i = 0; i < size; ++i)
        if (array[i] == test)
            return static_cast<int>(i);
    
    return -1;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int array[] = {1, 2, -1, 0, 1};
    
    int index = find_zero(array, sizeof(array) / sizeof(int));
    if (index >= 0)
        std::cout << "Ответ: " << index << std::endl;
    else
        std::cout << "В массиве нет нулевых элементов" << std::endl;
    
    system("Pause");
    return EXIT_SUCCESS;
}
ответ: 3
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:32  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #17
написал так:
C++
1
2
3
4
5
6
7
8
9
10
11
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                zero=i;                
                
        }
        return zero;
}
но в случае если в массиве два нуля, то выводит номер последнего из них
а нужно чтобы выводило номер первого
где-то должен быть break
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.03.2012, 23:34     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                {
                  zero=i;                
                  break;
                }
        }
        return zero;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2012, 23:35     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized.
Еще ссылки по теме:

C++ Run-Time Check Failure #3 - The variable 'k' is being used without being initialized
C++ - Run-Time Check Failure #3 - The variable 'c' is being used without being initialized C++
C++ Ошибка: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized

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

Или воспользуйтесь поиском по форуму:
m1x
5 / 5 / 0
Регистрация: 20.11.2010
Сообщений: 173
10.03.2012, 23:35  [ТС]     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized. #19
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int fun_mult(int *mas)
{
        int zero=-1;
        
        for (int i=0; i<10; i++){
                if (mas[i]==0)
                {
                  zero=i;                
                  break;
                }
        }
        return zero;
благодарю


всем спасибо
Yandex
Объявления
10.03.2012, 23:35     Ошибка: Run-Time Check Failure #3 - The variable 'zero' is being used without being initialized.
Ответ Создать тему
Опции темы

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