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

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

Войти
Регистрация
Восстановить пароль
 
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
#1

[C/C++] "Segmentation fault" при попытке передачи параметра командной строки. - C++

27.07.2009, 21:43. Просмотров 907. Ответов 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstring>
 
#include "driver.h"
 
   using std::ifstream;
   using std::cout;
   using std::endl;
 
   ifstream source;
   char* filename;
 
   int main(int argc, char* argv[])
   {
       driver_GlobalParamsCheck(argc,argv);
 
       source.open(filename);
 
        if (source.is_open())
        {
           parser_Init (filename);
           syntax_parserMain ();
           source.close();
       }
       else
           cout << "Error opening a file" << endl;
 
 
       return 0;
   }
 
   void driver_GlobalParamsCheck(const int argc, char* argv[])
   {
       if (argc > 1) strcpy(filename,argv[1]);  // Вот тут вылетает
 
       else filename = const_cast<char*>("source.bsc");
 
   }
Передаю таким образом
Код
./Interpreter source.bsc
Запуская без параметров всё проходит отлично.В чём может быть дело? Вот Call stack из дебаггера :
Код
#0 0xb7d740f4	strcpy() (/lib/tls/i686/cmov/libc.so.6:??)
#1 0x804f5f7	driver_GlobalParamsCheck(argc=2, argv=0xbfbb0de4) (/home/user/Interpreter/driver.cpp:38)
#2 0x804f630	main(argc=2, argv=0xbfbb0de4) (/home/user/Interpreter/driver.cpp:18)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2009, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [C/C++] "Segmentation fault" при попытке передачи параметра командной строки. (C++):

Ошибка "Segmentation fault" при организации дерева - C++
Есть следующие функции Three сreateThree(Node **q) { if((*q)-&gt;p) { Three *one, *two; one =...

Найти причины и способы исправления ошибки "Segmentation fault" в заданном коде - C++
Здравствуйте. С языком c++ и программировании в целом только знакомлюсь. Получил задание написать программу для решения СЛАУ методом...

Найти причины возникновения ошибки "Segmentation fault" в шаблонном лямбда-выражении (C++11) - C++
Добрый день. Есть такой код:template&lt;typename ChipSelect, typename T = uint8_t&gt; static T _readByte(uint8_t address) { ...

Segmentation fault при наследовании класса - C++
Доброго времени суток! Имею класс Initialise и класс Environment. В первом создаются экземпляры движка и прочие сопутствующие вещи....

Segmentation fault при вызове метода - C++
Собственно такое дело, имеется следующий код: Item* m_items; Player::Player() { ... memset(m_items, 0,...

Segmentation fault при работе со стеком - C++
Господа, если не затруднит, помогите пожалуйста с этой проблемой: Код компилируется, запускается -- и сразу аварийно завершает работу....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.07.2009, 21:45 #2
Не вижу, где для filename выделяется память.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2009, 21:45
Привет! Вот еще темы с ответами:

Segmentation fault при использовании модуля <time.h> - C++
Есть код time_t now; struct tm * ptr; static char tbuf; bzero(tbuf,64); time(&amp;now); ptr = localtime(&amp;now); strftime(tbuf, 64,...

Узнать номер командной строки на которой находится "каретка" - C++
Есть ли такая функция в недрах стандартных библиотек, чтобы узнать номер консольной строки, на которой в данный момент находится &quot;каретка&quot;...

Ошибка выполнения Segmentation fault при открытии файла - C++
Привет всем! почему не открывается файл, не понимаю что такое? ubuntu 16, qt creator 3.6.1 #include &lt;string&gt; #include &lt;iostream&gt; ...

Решение уравнения ("при попытке сопоставить список аргументов") - C++
Добрый день ! Делаю первые шаги в изучении С++, пока пишу самые простейшие программы, вывод текста, решение простых формул. Написал...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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