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

Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
simkara26
2 / 2 / 0
Регистрация: 26.05.2013
Сообщений: 32
31.05.2013, 17:39     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #1
Подскажите, как объявить пустой глобальный строковый массив из 16 элементов?

в качестве элементов будут указаны пути к графическим файлам на компьютере
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 17:39     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Посмотрите здесь:

C++ двумерный строковый массив
Строковый массив C++
Двумерный строковый массив C++
C++ Строковый массив и цикл for
Как описать пустой строковый массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
31.05.2013, 17:54     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #2
C++
1
2
#include <string>
string mas[16];
или
C++
1
char mas[16][X];
X - кол-во символов в строке
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 18:01     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #3
C++
1
std::vector<std::string> v;
C++
1
char ***str = 0;
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2013, 18:33     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #4
Цитата Сообщение от BumerangSP Посмотреть сообщение
char ***str = 0;
это не является массивом, тем более на 16 элементов
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 18:37     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #5
Tulosba, ну, по крайней мере хранить что-то можно, правильно выделив память)
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
31.05.2013, 18:53     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #6
BumerangSP, при таком раскладе и в одном единственном целом можно массив вещественных хранить:
C++
1
int p = reinterpret_cast<int>(new double[ 100500 ]);
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 19:25     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #7
Tulosba, все, что я хотел этим показать
C++
1
2
3
str = new char**[5];
for (int i=0; i<5; ++i)
   str[i] = new char*("dsfsdf");
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.06.2013, 11:41     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #8
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
str[i] = new char*("dsfsdf");
Но зачем? Выделять указатель (потом надо же удалять) и инициализировать его константной строкой, если можно просто:
C++
1
2
3
char** str = new char*[5];
for (int i=0; i<5; ++i)
   str[i] = "dsfsdf";
Хотя сама идея такой инициализации кажется мне сомнительной.
jekmut
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 56
21.10.2014, 21:52     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #9
Здравствуйте! Как инициализировать строковый массив в классе, например из трех элементов? Я запутался... Помогите пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <conio.h>
using namespace std;
 
class Students
{
  string student[];
  int averageRating[];
public:
  Student(string student[], int averageRating[]);
  void SortList();
  void Search();
  void ShowList();
};
 
Students :: Students(string student[], int averageRating[])
{
  this -> student[] = student[];
  this -> averageRating[] = averageRating[];
}
 
int main()
{
  
  getch();
  return 0;
}
notemac
23 / 23 / 4
Регистрация: 13.09.2014
Сообщений: 128
21.10.2014, 21:55     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #10
jekmut, поэлементно копировать из одного массива в другой.
jekmut
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 56
21.10.2014, 21:59     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #11
Я хотел инициализировать его по умолчанию, чтобы не вводить с клавиатуры, например так:
C++
1
student[] = {"Иванов", "Петров", "Сидоров"};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2014, 22:45     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Еще ссылки по теме:

Динамический строковый массив C++
C++ Строковый динамический массив
C++ Строковый Массив с циклом

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.10.2014, 22:45     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) #12
jekmut, во-первых, если массив является членом класса, его размерность должна быть указана явно.
Нельзя писать
C++
1
string student[];
Нужно указать размер, например:
C++
1
string student[42];
Во-вторых, копировать массивы просто используя присваивание тоже нельзя.
C++
1
this -> student[] = student[]; // ошибка
Нужно, либо использовать поэлементное копирование через цикл.
Либо использовать memcpy(), если тип является POD.

Если хочется сделать инициализацию поля в классе, то для этого нужно чтобы компилятор поддерживал стандарт C++11 и написать можно примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
struct S
{
    std::string i[2] = { "first", "second" };
};
     
int main() {
    S s;
    std::cout << s.i[0] << std::endl; // выводит "first"
    return 0;
}
http://coliru.stacked-crooked.com/a/4eec3fcef5b24696
Yandex
Объявления
21.10.2014, 22:45     Строковый массив (объявить пустой глобальный строковый массив из 16 элементов)
Ответ Создать тему
Опции темы

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