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

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

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

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

Ошибка "Segmentation fault" при вызове метода erase() контейнера vector
Хочу убрать изолированные вершины в графе. На строке 75 выдает &quot;Segmentation fault&quot;. #include...

При установке и удалении пакетов выдаёт "Segmentation fault"
Добрый день! Произошла проблема , после обновления, пытаюсь удалить или установить любой пакет...

При получения пакета возникает ошибка "Segmentation Fault"
Добрый день! Учился отправлять структуру по сети, натолкнулся на глюк. Если комментирую/удаляю...

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

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перезаписать все строки, короче i из одного файла в другой и ошибка "Segmentation fault (core dumped)"
Программа перезаписывает все строки, короче i из одного файла в другой. При запуске появляется...

Ошибка "Segmentation fault" при выполнении программы
Почему такой код работает, __strlen: // result - %rdx, argument - %rsi movq %rsi, %rdx ...

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

В приведенном коде возникает ошибка "segmentation fault"
#include &lt;stdio.h&gt; int mas; int main(){ int i,j,k; for(i=0;i&lt;10;++i) scanf(&quot;%d&quot;,mas); return...

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

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


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

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

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