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

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

Войти
Регистрация
Восстановить пароль
 
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
#1

Вылезает ошибка! - C++

27.05.2010, 19:37. Просмотров 396. Ответов 8
Метки нет (Все метки)

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
// Test.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void func(char*);
 
int main()
{
    char* a = "Hello, world!!!";
    cout << a << endl;
    func(a);
    cout << a;
    getch();
}
 
void func(char* mas)
{
    while (*mas) {
        if (*mas == 'o') *mas++ = '1';
        else *mas++ = '0';
    }
}
Программа компилируется, но при выполнении выдаёт ошибку на строке 24. В чём дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 19:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вылезает ошибка! (C++):

вылезает ошибка исправьте пожалуйста - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; char* rus(const char* text); using namespace std; struct Mashina { ...

При построение вылезает ошибка - C++
При построение вылезает ошибка что делать?!? Пытался перестанавливать но безуспешно

Ошибка. Индекс вылезает за пределы массива - C++
Добрый вечер! Помогите наладить работу программы. Вылетает ошибка - vector subscript out of range. Не понимаю, как это исправить. ...

Вылезает ошибка с написанием меню (WinAPI) - C++
Я писал пробную менюшку по учебнику (Ганеева), вылезла ошибка печальная :( В чем дело? Код: #include...

Почему вылезает такая ошибка 'sum' cannot be used as a function? - C++
Почему вылезает такая ошибка? 'sum' cannot be used as a function #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt; ...

При попытке компиляции на ноутбуке вылезает данная ошибка. Что это? - C++
Вот текст ошибки. Причем на чужом ноуте компилилось нормально, здесь вдруг траблы какие-то. С опасностью я понимаю, а вот с ерорами не...

8
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
27.05.2010, 19:46 #2
char* a = "Hello, world!!!";
поменяйте на
C++
1
char a[] = "Hello, world!!!";
и будет Вам счастье
2
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 19:50  [ТС] #3
Спасибо, а почему со звёздочкой не работает, а с квадратными скобками работает?
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
27.05.2010, 19:53 #4
[акер;758911]Спасибо, а почему со звёздочкой не работает, а с квадратными скобками работает?
а вот, почему...
0
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 20:08  [ТС] #5
А можно поподробнее? А то я что-то не понял...

Добавлено через 11 минут
Я новичок в C++.
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
27.05.2010, 20:16 #6
C++
1
char *buf1 = "abcd"; /* неконстантный указатель на константную строку */
Содержание строки нельзя менять!
1
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 20:17  [ТС] #7
Хм...Спасибо!
0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
27.05.2010, 20:21 #8
А так работать будет?
C++
1
const char * a= "abcd";
1
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 20:42  [ТС] #9
Нет. Дело в том, что в коде написано *mas++. В начале выполняется mas++, а потом *. А если сделать const char * a= "abcd";, то нельзя будет изменять указатель. А если char const * a= "abcd";, то тоже не получится потому, что мы изменяем значение того на что указывает указатель. И так и так не получится. Спасибо, конечно, за то что хотел помоч.

Добавлено через 3 минуты
Ой, пердон! Наоборот!
C++
1
2
const тип* переменная - можно изменять указатель, но не значение
тип* const переменная - наоборот
1
27.05.2010, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 20:42
Привет! Вот еще темы с ответами:

GUIwin32 вылезает консоль - C++
Вообщем создаю в моём Code Blocks проект GUIwin32 , автоматом генерируется пример с окном, но при запуске проги вылезает ещё и консольное...

Вылезает: [Warning] character constant too long for its type - C++
#include &lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; using namespace std; int main() { int x,y; cout &lt;&lt;&quot;Введу x&quot;; cin...

VS12 Почему "Нажмите для продолжения." вылезает 2 раза? - C++
Простейшая программа суммы 2х чисел После вывода суммы дважды пишет &quot;Нажмите для продолжения...&quot;, а если комментирую паузу, то,...

Почему в MSVC++ 2008 компилируется, а в MSVC++ 2010 вылезает много ошибок? - C++
Кстати, перед запуском в 2010 предлагает конвертировать код. Ну а чем эти две студии отличаются, что вызывает большое количество ошибок?


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

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

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