Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
1

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

27.07.2009, 21:43. Показов 1414. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прога вылетает при попытке передачи параметра через командную строку.Такой код:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2009, 21:43
Ответы с готовыми решениями:

Segmentation fault при попытке чтения файла (которого нет)
Новичок в С. Сижу под линухом. Что-бы освоить аргументы командной строки и i/o файлов в С решил...

При попытке использовать одновременно параметры-nostartfiles и-static программа выдаёт Segmentation fault
#define MESG &quot;Hello, World!\n&quot; #define MESG_SZ sizeof(MESG) main() { write(1,MESG,MESG_SZ);...

Ошибка "Segmentation fault" при использовании в функции переданного текстового параметра
Ребята, я новенький как на этом форуме так и в программировании, решил сделать блок кода который...

Ошибка компиляции при попытке передачи переменной ссылочного типа в качестве параметра
Вечер добрый, форумчане. Вопрос в виде комментария написан в коде: namespace TestConsole { ...

Зависание командной строки при попытке выполнить код
Здравствуйте. Командная строка зависает, как бы пытается что-то выполнить но в скомпилированом...

1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
27.07.2009, 21:45 2
Не вижу, где для filename выделяется память.
2
27.07.2009, 21:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2009, 21:45
Помогаю со студенческими работами здесь

Segmentation fault при рекурсий
Здравствуйте! Есть список продуктов $array_items, хочу вычислить все ветки категорий определенного...

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

Segmentation fault при запуске gtest
Работа содержит три разные функции не связанные друг с другом и пару тестов для этих функций....

Segmentation fault при чтении файлов
Код: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; void defSector (int* sectoRing,...

Segmentation fault при вызове функции
Недавно изучаю си. Пытаюсь скопировать массив параметров argv в новую функцию. Передается 9...

Segmentation fault при использовании stack
Помогите исправить ошибку и понять, что же работает неправильно. Код переводит выражение из...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru