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

Поменять значение элемента в массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Biggs
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 52
21.05.2011, 09:18     Поменять значение элемента в массиве #1
Если делаю

char a[]={"Help"};
a[0]='S';
то все нормально, однако если массив задан

char *a={"Help"};

тогда,- a[0]='S'; не проходит (говорит доступ запрещен) - - почему ? И что делать ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 09:18     Поменять значение элемента в массиве
Посмотрите здесь:

C++ Найти в массиве и вывести значение наиболее часто встречающегося элемента.
Найти в массиве и вывести значение наиболее часто встречающегося элемента C++
наименьшее значение в массиве поменять с последним элементом в массиве C++
дана матрица А(5,5). Каждый минимальный элемент строки поменять на максимальное значение элемента, побочной диагонали C++
задачи в Двумерном массиве. Определить, есть ли в массиве два одинаковых элемента, поменять местами элементы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.05.2011, 09:24     Поменять значение элемента в массиве #2
Char * это как бы указатель на константу, которую нельзя изменять.
Пиши
C++
1
char a[]="Help";
char * использовался в более ранних версиях языка c/c++, его оставили, чтобы ранее написанный код был корректным.
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
21.05.2011, 10:03     Поменять значение элемента в массиве #3
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char a[]={"Help"};
    char *b=a;
    b[0]='S';
    printf("%s->%s\n", a,b);
    system("pause");
 
    return 0;
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.05.2011, 10:10     Поменять значение элемента в массиве #4
Цитата Сообщение от lamed Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char a[]={"Help"};
    char *b=a;
    b[0]='S';
    printf("%s->%s\n", a,b);
    system("pause");
 
    return 0;
}
Если вы хотели, чтобы на выводе получилось
Код
Help->Selp
То немного ошиблись=)
Эти строки в одной ячейке памяти находятся, изменяя b, вы изменяется также а
lamed
297 / 297 / 71
Регистрация: 07.05.2011
Сообщений: 592
21.05.2011, 10:13     Поменять значение элемента в массиве #5
Я показал ИМЕННО то, что планировал.
Biggs
16 / 10 / 0
Регистрация: 12.03.2011
Сообщений: 52
21.05.2011, 11:14  [ТС]     Поменять значение элемента в массиве #6
Спасибо всем за ответы.
Yandex
Объявления
21.05.2011, 11:14     Поменять значение элемента в массиве
Ответ Создать тему
Опции темы

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