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

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

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

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

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

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

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

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include <iostream> #include <stdlib.h> #include<iomanip> using namespace std; void min_max(int*pa, int*pb,...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

30
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 21:53 #2
C++
1
const char *str[2] = {"Hello", " World!"};
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 21:58  [ТС] #3
alsav22, про константу я знаю, но в примерах книг, пишется без нее, почему?
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:06 #4
Цитата Сообщение от Ryuk Посмотреть сообщение
почему?
Разные компиляторы к этому по-разному относятся (сутдия, например, компилирует). Может поэтому. Но, вообще, это массив указателей на строковые литералы, поэтому должен быть константным.
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:10  [ТС] #5
alsav22, и что тогда удобнее использовать двумерный массив символов или все же указатель?
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:15 #6
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему MinGW ругается при объявлении:
Ты вроде не новый человек на форуме. Так почему тебе стоит объяснять что тут не телепаты? Как ругается?
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:16  [ТС] #7
castaway, требует чтобы была константа
0
alsav22
5425 / 4820 / 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]
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:19  [ТС] #9
alsav22, проще говоря, мне нужно вырезать определенное кол-во слов, вводимых с клавиатуры, для дальнейшей работы с ними. Я не могу определиться, что будет лучше двумерный массив или все же строки.
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:19 #10
Ryuk, для особо одарённых:
Цитата Сообщение от castaway Посмотреть сообщение
Как ругается?
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:20 #11
Удалил.
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:21  [ТС] #12
castaway, invalid conversion from 'char' to 'const char*'
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.10.2013, 22:22 #13
Ryuk, это ошибка, или предупреждение?
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:23  [ТС] #14
alsav22, как сделать и так и так, я вроде как знаю, тем более не умею пока что работать с памятью.

Добавлено через 1 минуту
castaway, ошибка, хотя у некоторых на форуме было просто предупреждение.
0
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 866
Регистрация: 27.09.2012
Сообщений: 18,891
Записей в блоге: 3
Завершенные тесты: 1
28.10.2013, 22:24 #15
Цитата Сообщение от Ryuk Посмотреть сообщение
Я не могу определиться, что будет лучше двумерный массив или все же строки.
строки - понятие растяжимое. В Вашем случае вы объявили массив из двух указателей на строковые литералы, изменение которых ведет к неопределенному поведению, поэтому и менять их нельзя, а значит и указатели лучше делать const char *
0
28.10.2013, 22:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2013, 22:24
Привет! Вот еще темы с ответами:

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include <iostream> #include <conio.h> #include <string> using namespace std; //Сортировка "пузырьком". ...

Используются ли на практике указатели на указатели объектов? - C++
Имеются ввиду указатели именно на объекты, а не динамические массивы. Например такой: Object** obj; А как насчёт такого: Object***...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Константные указатели и указатели на константу - C++
Чем они, собственно говоря, отличаются? Поясните, пожалуйста. Не знаю, как так получилось, что в разных источниках - разные...


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

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

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