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

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

Войти
Регистрация
Восстановить пароль
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
#1

Компилятор не ругается - C++

07.04.2013, 19:58. Просмотров 301. Ответов 3
Метки нет (Все метки)

Компилятор по разному реагирует на 2 указателя на строки (см.комментарии). В связи с этим появился вопрос - где хранятся аргументы командной строки и корректно ли их изменять?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string.h>
#include <stdlib.h>
 
int main(int argc, char* argv)
{
    char *str = "123";
 
    if(argc != 2)
         exit(1);
 
    strcat(str, "asd") //здесь он ругается
    strcat(argv[1], "asd") //А здесь он не ругается
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2013, 19:58     Компилятор не ругается
Посмотрите здесь:

Компилятор ругается - C++
Условие Создать класс, содержащий сведения о количестве изделий, собранный сборщиками цеха за неделю. Класс должен содержать следующие...

Компилятор ругается на strrev - C++
Подключил cstring, все равно онлайн Ideone и Shell не понимают strrev().

Почему компилятор ругается? - C++
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; using namespace std; FILE*fp; struct Computer { char...

Компилятор ругается на textcolor - C++
компилятор собственно Visual Studio C++ 2010 Express #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Ругается компилятор (итераторы) - C++
Мужики в чем дело компилятор ругается C2451 #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include &lt;map&gt; using...

Почему ругается компилятор - C++
#include &lt;iostream&gt; using namespace std; int main() { int a; cin.get(a); system(&quot;pause&quot;); }

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.04.2013, 20:11     Компилятор не ругается #2
char *argv[] или char **argv

Там должен быть указатель на указатель. Хранятся (фактически) глобально, изменять разрешается. (Естессно, за переполнениями буфера следите самостоятельно. Те строки, на которые указывает argv изначально, упакованы плотненько.)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.04.2013, 20:16     Компилятор не ругается #3
Цитата Сообщение от bgm123 Посмотреть сообщение
strcat(argv[1], "asd") //А здесь он не ругается
по идее твой argv[1] - символ, а не указатель.

Добавлено через 21 секунду
Цитата Сообщение от bgm123 Посмотреть сообщение
strcat(str, "asd") //здесь он ругается
Что пишет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2013, 20:16     Компилятор не ругается
Еще ссылки по теме:

Компилятор ругается на fopen - C++
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include &lt;string.h&gt; #define MAX 50 using namespace std; // Приоритет операций int...

Компилятор ругается на синтаксис - C++
cout &lt;&lt; &quot;Введите значение длины в заданных единицах: m, cm, ft, in: &quot; &lt;&lt; '\n'; for (i=0;i&lt;100;++i){ cin &gt;&gt; length &gt;&gt; len_unit; ...

компилятор с++ 2012 ругается - C++
Алгоритмы накопления y=x - sqrt(abs(x)); x=(0.98,0.52,0.77,-0.67,-0.14); n=5 #include &quot;stdafx.h&quot; #include...

компилятор ругается помогите - C++
Недавно взялся за изучение С++ забил программку а запускаться не хочет #include &lt;iostream&gt; #include &lt;string&gt; struct node { ...

Компилятор ругается на fopen - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; int main() { FILE *f =...

почему компилятор не ругается? - C++
Почему компилятор не ругается, когда я исп. неинициализированную переменную и кладёт автоматически туда мусор. (см..коменатрий в коде): ...


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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.04.2013, 20:16     Компилятор не ругается #4
Цитата Сообщение от bgm123 Посмотреть сообщение
char* argv)
Цитата Сообщение от bgm123 Посмотреть сообщение
strcat(argv[1], "asd") //А здесь он не ругается
не может быть!

А если по делу, то посмотрите этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
int Main(int argc, char* argv[])
{
   strcat(argv[1], "Hello");
   return 0;
}
 
int main()
{
   const char* strings[] = {
      "Hello",
      "Hi"
   };
 
   Main(2, const_cast<char**> (strings));
   std::cout << "OK" << std::endl;
}
Может на мысль натолкнет.
Или так
C++
1
strcat("Hi", "Hello");
Yandex
Объявления
07.04.2013, 20:16     Компилятор не ругается
Ответ Создать тему
Опции темы

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