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

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

Войти
Регистрация
Восстановить пароль
 
 
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
#1

Указатели в Си - C++

28.10.2013, 21:52. Просмотров 748. Ответов 30
Метки нет (Все метки)

Добрый вечер!
Почему MinGW ругается при объявлении:
C
1
char *str[2] = {"Hello", " World!"};
Объясните пожалуйста, как со строковыми указателями вообще работать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 21:52     Указатели в Си
Посмотрите здесь:

Указатели* - C++
Объясните что происходит в последней строке , и если мои комменты не правильны поправьте пожалуйста. void order ( int* numb1, int*...

Указатели.... - C++
Найти наибольшее отрицательное число с четными индексами. (Создать указатель на наиболее отрицательное число среди элементов с четными...

Указатели - C++
Используя вместо самой переменной указатель на нее, написать программу в соответствии с заданием (выполнение задания оформить...

Указатели - C++
Всем привет. Нам дали сделать лабу: Дана целочисленная прямоугольная матрица. 1) Определить номер первого из столбцов, содержащих хотя...

Указатели - C++
Есть задание,я сделала через массив,а мне нужно переделать через указатели. #include <iostream.h> #include <stdio.h> #include...

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

Указатели - C++
Доброй ночи! Вот столкнулась с такой проблемой, нужно из одной функции в другую перенести переменную number через указатель, что у меня...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 21:53     Указатели в Си #2
C++
1
const char *str[2] = {"Hello", " World!"};
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 21:58  [ТС]     Указатели в Си #3
alsav22, про константу я знаю, но в примерах книг, пишется без нее, почему?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:06     Указатели в Си #4
Цитата Сообщение от Ryuk Посмотреть сообщение
почему?
Разные компиляторы к этому по-разному относятся (сутдия, например, компилирует). Может поэтому. Но, вообще, это массив указателей на строковые литералы, поэтому должен быть константным.
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:10  [ТС]     Указатели в Си #5
alsav22, и что тогда удобнее использовать двумерный массив символов или все же указатель?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:15     Указатели в Си #6
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему MinGW ругается при объявлении:
Ты вроде не новый человек на форуме. Так почему тебе стоит объяснять что тут не телепаты? Как ругается?
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:16  [ТС]     Указатели в Си #7
castaway, требует чтобы была константа
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:18     Указатели в Си #8
Цитата Сообщение от Ryuk Посмотреть сообщение
alsav22, и что тогда удобнее использовать двумерный массив символов или все же указатель?
Смотря что делать.

Добавлено через 2 минуты
Тут же дело не в том, что это указатели на строки, а в том, что это указатели на литералы.
C++
1
2
3
4
5
    char *str[2];
    str[0] = new char[10];
    str[1] = new char[10];
    strcpy(str[0], "Hello");
    strcpy(str[1], " World!");
[/CPP]
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:19  [ТС]     Указатели в Си #9
alsav22, проще говоря, мне нужно вырезать определенное кол-во слов, вводимых с клавиатуры, для дальнейшей работы с ними. Я не могу определиться, что будет лучше двумерный массив или все же строки.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:19     Указатели в Си #10
Ryuk, для особо одарённых:
Цитата Сообщение от castaway Посмотреть сообщение
Как ругается?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:20     Указатели в Си #11
Удалил.
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:21  [ТС]     Указатели в Си #12
castaway, invalid conversion from 'char' to 'const char*'
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:22     Указатели в Си #13
Ryuk, это ошибка, или предупреждение?
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:23  [ТС]     Указатели в Си #14
alsav22, как сделать и так и так, я вроде как знаю, тем более не умею пока что работать с памятью.

Добавлено через 1 минуту
castaway, ошибка, хотя у некоторых на форуме было просто предупреждение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2013, 22:24     Указатели в Си
Еще ссылки по теме:

Указатели - C++
1) Предположим, что p - указатель, установленный на целую переменную со значением 3. Что можно сказать о значении выражений p, * p, & p, *...

Указатели - C++
Почему такой вариант кода невозможен(конкретно: строка 6)?int indicator, x = 15, y = 10; int *ptr; cin >> indicator; ...

Указатели - C++
Доброго времени суток. У меня задание. Кто поможет? Сказали разобраться с указателями. Программа ругается на +=, выдает ошибку. Как их...

указатели - C++
1) создать функцию(проблем нет) 2) в функции ввести и определить локальную переменную типа int и задать ей значение 1(проблем нет) 3) в...

Указатели - C++
Всем здрасьте ! Тут на днях я прочитал про указатели в одной книге , и мало что о них понял. Не могил бы вы мне рассказать , что это...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13054 / 7317 / 815
Регистрация: 27.09.2012
Сообщений: 18,053
Записей в блоге: 3
Завершенные тесты: 1
28.10.2013, 22:24     Указатели в Си #15
Цитата Сообщение от Ryuk Посмотреть сообщение
Я не могу определиться, что будет лучше двумерный массив или все же строки.
строки - понятие растяжимое. В Вашем случае вы объявили массив из двух указателей на строковые литералы, изменение которых ведет к неопределенному поведению, поэтому и менять их нельзя, а значит и указатели лучше делать const char *
Yandex
Объявления
28.10.2013, 22:24     Указатели в Си
Ответ Создать тему
Опции темы

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