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

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

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

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

27.07.2009, 21:43. Просмотров 894. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2009, 21:43     [C/C++] "Segmentation fault" при попытке передачи параметра командной строки.
Посмотрите здесь:

Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом C++
Segmentation fault при использовании модуля <time.h> C++
Решение уравнения ("при попытке сопоставить список аргументов") C++
Segmentation fault при вызове метода C++
C++ Узнать номер командной строки на которой находится "каретка"
C++ Ошибка "Segmentation fault" при организации дерева
Segmentation fault при наследовании класса C++
C++ Ошибка "при попытке сопоставить список аргументов"
Почему, при попытке "взять" адрес переменной,компилятор ее не положит на регистр? C++
Ошибка выполнения Segmentation fault при открытии файла C++
Найти причины возникновения ошибки "Segmentation fault" в шаблонном лямбда-выражении (C++11) C++
C++ Найти причины и способы исправления ошибки "Segmentation fault" в заданном коде

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
27.07.2009, 21:45     [C/C++] "Segmentation fault" при попытке передачи параметра командной строки. #2
Не вижу, где для filename выделяется память.
Yandex
Объявления
27.07.2009, 21:45     [C/C++] "Segmentation fault" при попытке передачи параметра командной строки.
Ответ Создать тему
Опции темы

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