Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2011, 23:53   #11
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
Код:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
    cout << "type a file name....\n";
    char namefile;
    cin >> namefile;
    char* f;
    f=&namefile;
    f[1] = '\0';
    FILE *opf;
    opf = fopen(f, "w+");
    fclose(opf);

return 0;
}
По-хорошему это segmentation failed..
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 10.08.2011, 23:59   #12
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от JoberLord Посмотреть сообщение
В самом начале забыл задать еще вопрос почему в opf = fopen(f, "w+"); я не мог поставить переменную namefile? при компиляции была ошибка, а через ссылку получилось.
Это не ссылка, а операция взятия адреса...
Код:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
    cout << "type a file name....\n";
    char namefile[100]= {0};
    cin >> namefile;
    FILE *opf;
    opf = fopen( namefile, "w+");
    fclose(opf);
return 0;
}
Так сложно что ли массив использовать ?
An1ka вне форума Ответить с цитированием
Старый 11.08.2011, 09:29   #13
JoberLord
Пользователь
 
Аватар для JoberLord
 
Регистрация: 28.03.2010
Сообщений: 38
По умолчанию

Спасибо большое но вот только не пойму в чем не прав был при написании кода. В имя файла я вводил всего 1 символ

Последний раз редактировалось JoberLord; 11.08.2011 в 09:38.
JoberLord вне форума Ответить с цитированием
Старый 11.08.2011, 11:13   #14
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Функция fopen ожидает строку, ограниченную нулевым символом, а вы давали строку (указатель на 1 символ), ничем не ограниченную. Что тут может быть не понятно?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 11.08.2011, 19:16   #15
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от Syuf Посмотреть сообщение
По-хорошему это segmentation failed..
Syuf или кто-нибудь помогите разобраться с моей проблемой описанной в сообщении №8 данной темы.

segmentation failed - ошибка сегментации? Википедия: ссылка Я не пойму почему она возникает?
8Observer8 вне форума Ответить с цитированием
Старый 11.08.2011, 19:54   #16
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
segmentation failed - ошибка сегментации? Википедия: ссылка Я не пойму почему она возникает?
Да, в windows более известная как Access Violation (Нарушение доступа). Возникает при попытке обращения к не своей памяти.
У вас ошибка возникает из-за этого:
Код:
    f=&namefile; // namefile ведь один байт занимает
    f[1] = '\0';    // а пишите во второй
То есть вы "испортили" стек вокруг переменной namefile. В Release это может никак не сказаться (более того, предупреждение выскочит только в отладочной версии, так как только в ней делаются соответствующие проверки), но лучше так не делать, можно ненароком испортить переменные, следующие за namefile ну или чего хуже.
netrino вне форума Ответить с цитированием
Старый 11.08.2011, 20:04   #17
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

netrino, огромное Вам спасибо!
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виртуальная файловая система Порфирий Общие вопросы .NET 4 08.07.2011 16:16
Файловая система androidvsu Общие вопросы по Java, Java SE, Kotlin 3 13.10.2010 19:04
Файловая система на с++ Nikolai2010 Общие вопросы C/C++ 4 17.03.2010 13:18
Файловая система student_63 Win Api 1 12.04.2008 20:29