Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Вычислить расстояние между двумя точками с заданными координатами https://www.cyberforum.ru/c-beginners/thread1267066.html
Вычислить расстояние между двумя точками с координатами x1, y1 и x2, y2. Исходные данные и результат вывести в табличной форме. Добавлено через 42 минуты люди очень нужна помощь(
C (СИ) Не считается произведение
Не считает произведение где ошибка? И если не сложно напишите вывод отсортированного массива. #include <stdio.h> #include <math.h> int main(void) { const int N = 5; double arr; ...
Cортировка Шелла / Древовидная, определить количество перестановок и присваиваний C (СИ)
Заданы 3 массива из 200 эл. 1 упорядоченный.2масссив 200,199,198 и тд. 3 рандомный( как задать массив рандомный без повторений?). Надо вычислить кол-во перестановок и присваиваний сл методами...
C (СИ) Зашифровать слово данного предложения по принципу "сдвиг на 2 символа" С клавиатуры задаётся предложение.Зашифровать слово данного предложения по принципу "сдвиг на 2 символа": a-c;b-d;c-e; и тд. Подскажите пожалуйста как делать. https://www.cyberforum.ru/c-beginners/thread1266942.html
C (СИ) Запись в файл из нескольких потоков https://www.cyberforum.ru/c-beginners/thread1266894.html
Здравствуйте! Можно ли писать в один и тот же файл из нескольких потоков без синхронизации? Была идея завести переменную флаг на событие открыт ли файл, но можно ли сделать это штатными средствами...
Составить алгебраические выражения с помощью стандартных математических функций языка C (СИ)
Помогите решить задачу, если не трудно, пожалуйста) "Для приведенных ниже вариантов необходимо составить алгебраические выражения с помощью стандартных математических функций языка С." h - {a}^{3}...
C (СИ) Реализация алгоритма base64
Я скачал реализацию алгоритма кодирования base64: static const char basis_64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int Base64encode_len(int len) { ...
C (СИ) Не выводится на экран ответ программы, приложение вместо этого закрывается #include <stdio.h> #include <stdlib.h> int main() { int age; printf("How old are you?"); scanf("%d", &age); if (age < 100) { printf("You are very young"); https://www.cyberforum.ru/c-beginners/thread1266807.html
C (СИ) Нахождение чисел делящихся на 7 в интервале https://www.cyberforum.ru/c-beginners/thread1266787.html
Добрый вечер. Сразу прошу прощения, если не правильно оформил пост и/или написал не в том разделе. Помогите, пожалуйста, написать код программы. программа - курсовая работа. Нужно очень срочно....
C (СИ) Записи, содержащие данные о студентах-спортсменов института. Найти ошибку в цикле С клавиатуры ввести последовательность записей, содержащих данные о студентах-спортсменов института: <Фамилия, имя>, <Год рождения>, <Вид спорта>, <Разряд>. Распечатать введенные данные в форме... https://www.cyberforum.ru/c-beginners/thread1266689.html
zss
Модератор
Эксперт С++
9249 / 7989 / 4906
Регистрация: 18.12.2011
Сообщений: 21,305
Завершенные тесты: 1
04.10.2014, 10:57  [ТС] 0

Распространенные ошибки

04.10.2014, 10:57. Просмотров 65709. Ответов 63
Метки (Все метки)

Ответ

9. Использование неинциализированной переменной

C
1
2
int x; // предполагалось, например, int x=1;
printf("%d",x); // выведет мусор (то, что находилось в переменной x)
Часто встречается вариант с использованием неинициализированного счётчика или переменной для подсчёта суммы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <locale.h>
#define arrSize  3
int main()
{
    int i,arr[arrSize] = {1, 2, 3};
    int sum;                // надо писать int sum=0;
    for (i=0; i < arrSize; i++)
        sum += arr[i]; // мы к "мусору" добавляем значение элемента массива
    printf("%d\n",sum); // выведет не то, что вы ожидали
    setlocale(LC_ALL,"Rus");
    printf("\nНажмите Enter для завершения");
    getchar();
    return 0;
}
Такой код может привести к ошибке на этапе исполнения:
Run-Time Check Failure #3 - The variable 'sum' is being used without being initialized.
Также компилятор может выдать предупреждение об ошибке:
1>d:\current\cpp\test\test.c(9) : warning C4700: использована неинициализированная локальная переменная "sum"
Для этого надо установить соответствующий уровень предупреждений компилятора.
В Visual Studio это делается через команду меню
Проект->Свойства->Свойства конфигурации->С/С++->Общие->
Уровень предупреждений->Уровень 4 (/W4).

Вернуться к обсуждению:
Распространенные ошибки
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2014, 10:57
Готовые ответы и решения:

Распространенные ошибки
Оглавление Ошибки этапа компиляции Программа не компилируется или компилируется с...

безопасность и распространенные ошибки
Тут наткнулся на очень интересные тексты: http://werad.narod.ru/articles/programm6.html ...

Распространенные ошибки SEO и ASP.NET 2.0
Здравствуйте, существуют несколько СЕО проблем при использовании ASP.NET, ниже я опишу эти...

Самые распространённые фамилии
Здравствуйте! Для реализации автоподстановки фамилии нужно как-то выявить, например, 1 (10, 15,...

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