Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871

Указатели в Си

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

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Почему MinGW ругается при объявлении:
C
1
char *str[2] = {"Hello", " World!"};
Объясните пожалуйста, как со строковыми указателями вообще работать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2013, 21:52
Ответы с готовыми решениями:

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

Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей?
Доброго времени суток! Задался теоретическим вопросом. Читал пример из книги Лафоре ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++,...

В matlab есть указатели на переменные или что-нибудь похожее на указатели?
Здравствуйте, в matlab есть указатели на переменные? или что-нибудь похожее на указатели? нужно хранить в объекте информацию: на...

30
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 21:53
C++
1
const char *str[2] = {"Hello", " World!"};
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 21:58  [ТС]
alsav22, про константу я знаю, но в примерах книг, пишется без нее, почему?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:06
Цитата Сообщение от Ryuk Посмотреть сообщение
почему?
Разные компиляторы к этому по-разному относятся (сутдия, например, компилирует). Может поэтому. Но, вообще, это массив указателей на строковые литералы, поэтому должен быть константным.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:10  [ТС]
alsav22, и что тогда удобнее использовать двумерный массив символов или все же указатель?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.10.2013, 22:15
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему MinGW ругается при объявлении:
Ты вроде не новый человек на форуме. Так почему тебе стоит объяснять что тут не телепаты? Как ругается?
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:16  [ТС]
castaway, требует чтобы была константа
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:18
Цитата Сообщение от 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
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:19  [ТС]
alsav22, проще говоря, мне нужно вырезать определенное кол-во слов, вводимых с клавиатуры, для дальнейшей работы с ними. Я не могу определиться, что будет лучше двумерный массив или все же строки.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.10.2013, 22:19
Ryuk, для особо одарённых:
Цитата Сообщение от castaway Посмотреть сообщение
Как ругается?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:20
Удалил.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:21  [ТС]
castaway, invalid conversion from 'char' to 'const char*'
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.10.2013, 22:22
Ryuk, это ошибка, или предупреждение?
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:23  [ТС]
alsav22, как сделать и так и так, я вроде как знаю, тем более не умею пока что работать с памятью.

Добавлено через 1 минуту
castaway, ошибка, хотя у некоторых на форуме было просто предупреждение.
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
28.10.2013, 22:24
Цитата Сообщение от Ryuk Посмотреть сообщение
Я не могу определиться, что будет лучше двумерный массив или все же строки.
строки - понятие растяжимое. В Вашем случае вы объявили массив из двух указателей на строковые литералы, изменение которых ведет к неопределенному поведению, поэтому и менять их нельзя, а значит и указатели лучше делать const char *
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2013, 22:27
Цитата Сообщение от Ryuk Посмотреть сообщение
Я не могу определиться, что будет лучше двумерный массив или все же строки.
Лучше - vector, string.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:27  [ТС]
alsav22, а если это будет на Си?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.10.2013, 22:28
Цитата Сообщение от Ryuk Посмотреть сообщение
castaway, ошибка, хотя у некоторых на форуме было просто предупреждение.
Не верю. У меня с флагом -pedantic выдает только предупреждение.
0
 Аватар для Ryuk
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
28.10.2013, 22:29  [ТС]
castaway, это сути не меняет, сам факт(даже если это предупреждение) присутствует. Почему? Компилятор?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
28.10.2013, 22:30
Цитата Сообщение от Ryuk Посмотреть сообщение
castaway, это сути не меняет, сам факт, даже если это предупреждение, присутствует.
Решение проблемы тебе уже сказали: const char *str[2] = {"Hello", " World!"};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2013, 22:30
Помогаю со студенческими работами здесь

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

Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком
Смысл задания в том, что нужно отсортировать массив структур из 3х полей по сумме координат есть структура struct XYZ{ ...

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

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

Зачем нужны все эти указатели (или не указатели)
Зачем надо DWORD, HANDLE, LPVOID?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru