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

указатель на массив строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
26.09.2012, 12:49     указатель на массив строк #1
Всем добрый день. Не могу понять как поменять символ в через указатель на массив строк?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char *labPtr[12]={"############",
                  "#...#......#",
                  "..#.#.####.#",
                  "###.#....#.#",
                  "#....###.#..",
                  "####.#.#.#.#",
                  "#..#.#.#.#.#",
                  "##.#.#.#.#.#",
                  "#........#.#",
                  "######.###.#",
                  "#......#...#",
                  "############"};
 
*(labPtr[2])='2';
cout<<*(labPtr[2]);
По идее тут точка в 3 строке меняется на 2, но программа не работает. В чем подвох?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 12:49     указатель на массив строк
Посмотрите здесь:

Что быстрее использовать, массив э-в, или указатель на массив э-в? C++
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
C++ Создание функции инициализации двумерного массива строк через указатель
Динамический массив и указатель на указатель C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
26.09.2012, 12:52     указатель на массив строк #2
По идее, ты третьему указателю на строку пытаешься присвоить символ '2'

надо как-то так
C++
1
labPtr[2][0] = '2';
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
26.09.2012, 12:58  [ТС]     указатель на массив строк #3
Так тоже не работает.
Насколько я понял с указателями,
C++
1
labPtr[2]
Это указатель на первый символ в 3 строке.
Соотвественно разыменовывая его, я получаю первый символ в 3 строке и присваиваю ему другой.
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
26.09.2012, 13:18     указатель на массив строк #4
Цитата Сообщение от Peperovich Посмотреть сообщение
Так тоже не работает.
потому что ты объявил указатель на константы, соответственно изменить ты их не можешь (они только для чтения).
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main(int argc, char **argv)
{
    char labPtr[12][12] =
        {"############",
        "#.x.#......#",
        "..#.#.####.#",
        "###.#....#.#",
        "#....###.#..",
        "####.#.#.#.#",
        "#..#.#.#.#.#",
        "##.#.#.#.#.#",
        "#........#.#",
        "######.###.#",
        "#......#...#",
        "############"};
 
    printf("%c\n", labPtr[1][2]);
    labPtr[1][2] = 'y';
    printf("%c\n", labPtr[1][2]);
    return 0;
}
меняет символ икс из массива на игрек
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
26.09.2012, 13:23  [ТС]     указатель на массив строк #5
Цитата Сообщение от remarkes Посмотреть сообщение
потому что ты объявил указатель на константы, соответственно изменить ты их не можешь (они только для чтения).
А почему константы они, вроде как объявление на константные данные будет таким.
C++
1
const char *sPtr
Или это изза того, что я инициализировал в вместе с обьявлением?
Yandex
Объявления
26.09.2012, 13:23     указатель на массив строк
Ответ Создать тему
Опции темы

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