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

Не иницилизированна переменная - C++

Восстановить пароль Регистрация
 
banda
1 / 1 / 0
Регистрация: 06.02.2011
Сообщений: 46
24.12.2012, 12:40     Не иницилизированна переменная #1
Помогите пожалуйста, с исправлением ошибки, не понимаю что не так.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
 
void error(FILE *fp,char *filename);
 
int main()
{
    FILE *fp;
    char *filename = "m:\\2.txt";
    error(fp,filename);
 
system("pause");
return 0;
}
 
void error(FILE *fp,char *filename="m:\\2.txt")
{
 
    
    if ((fp = fopen(filename,"r")) == 0)
        cout<<"Unable to open file"<<filename;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 12:40     Не иницилизированна переменная
Посмотрите здесь:

C++ переменная
C++ Cтатическая переменная
C++ Текстовая переменная
булевская переменная C++
C++ строковая переменная
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
24.12.2012, 13:00     Не иницилизированна переменная #2
переменную fp объявили, но НЕ инициализировали. Потом передаёте в функцию. А что вы там передаёте?
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
24.12.2012, 13:07     Не иницилизированна переменная #3
Вы в функцию передаете копию своего указателя. Попробуйте так:
C++
1
void error(FILE *&fp,char *filename="m:\\2.txt")
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.12.2012, 13:20     Не иницилизированна переменная #4
banda, программерская басня:
Физик, биолог и математик наблюдают за происходящим, в дом входят и выходят люди. Вдруг вошло двое, а вышли трое. Физик:
- Первоначальное наблюдение содержало ошибку.
Биолог:
- Люди имеют привычку размножаться.
Математик:
- Всё гораздо проще: сейчас войдёт ещё один и дом снова будет пуст.
. Мораль: всегда обнуляйте переменные.
Но это не ошибка, а только предупреждение. Использование же неинициированного указателя - это совсем другое. Это ошибка, лечится выделением памяти, или присваивание существующего адреса перед первым использованием. Но если сама функция должна выделить память, или присвоить адрес, то вызов с NULL, или nullptr указателем - норма.
Yandex
Объявления
24.12.2012, 13:20     Не иницилизированна переменная
Ответ Создать тему
Опции темы

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