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

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

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

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

27.05.2010, 19:37. Просмотров 380. Ответов 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. В чём дело?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2010, 19:37     Вылезает ошибка!
Посмотрите здесь:

При попытке компиляции на ноутбуке вылезает данная ошибка. Что это? C++
При построение вылезает ошибка C++
C++ VS12 Почему "Нажмите для продолжения." вылезает 2 раза?
C++ GUIwin32 вылезает консоль
Почему в MSVC++ 2008 компилируется, а в MSVC++ 2010 вылезает много ошибок? C++
C++ Глупая ошибка, но до сих пор неисправленная ошибка: ";"
Ошибка. Индекс вылезает за пределы массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.05.2010, 19:46     Вылезает ошибка! #2
char* a = "Hello, world!!!";
поменяйте на
C++
1
char a[] = "Hello, world!!!";
и будет Вам счастье
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 19:50  [ТС]     Вылезает ошибка! #3
Спасибо, а почему со звёздочкой не работает, а с квадратными скобками работает?
easybudda
Эксперт С++
9455 / 5468 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.05.2010, 19:53     Вылезает ошибка! #4
[акер;758911]Спасибо, а почему со звёздочкой не работает, а с квадратными скобками работает?
а вот, почему...
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 20:08  [ТС]     Вылезает ошибка! #5
А можно поподробнее? А то я что-то не понял...

Добавлено через 11 минут
Я новичок в C++.
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
27.05.2010, 20:16     Вылезает ошибка! #6
C++
1
char *buf1 = "abcd"; /* неконстантный указатель на константную строку */
Содержание строки нельзя менять!
][акер
#define книжный_червь Я
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
27.05.2010, 20:17  [ТС]     Вылезает ошибка! #7
Хм...Спасибо!
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
27.05.2010, 20:21     Вылезает ошибка! #8
А так работать будет?
C++
1
const char * a= "abcd";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 20:42     Вылезает ошибка!
Еще ссылки по теме:

вылезает ошибка исправьте пожалуйста C++
C++ Вылезает ошибка с написанием меню (WinAPI)
Вылезает: [Warning] character constant too long for its type C++
C++ Почему вылезает такая ошибка 'sum' cannot be used as a function?
Проверить правильность кода. Вылезает Error 5 error C2679: binary '<<' : no operator found which takes a right C++

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

Или воспользуйтесь поиском по форуму:
][акер
#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 переменная - наоборот
Yandex
Объявления
27.05.2010, 20:42     Вылезает ошибка!
Ответ Создать тему
Опции темы

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