Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание двухмерного масива 
:(
    Опции темы
Vredniy
Дата 10.11.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Как создать большой стринговый джухмерный масив??
Таким способом выдает ошибку, почему 
Код

string StrArr[1500][200];

PM MAIL   Вверх
Alek86
Дата 10.11.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



какую ошибку?
1. помнится, когда-то где-то нельзя было больше 255 символов...
2. может std::string?
3. если пользуешь стринги (smile), то учись пользоваться и векторами (std::vector)


--------------------
user posted image    user posted image
PM MAIL   Вверх
Vredniy
Дата 10.11.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



С синтаксом вроде все в порядке

1>------ Build started: Project: test2, Configuration: Debug Win32 ------
1>Compiling...
1>Skipping... (no relevant changes detected)
1>test2.cpp
1>Build log was saved at "file://c:\Documents and Settings\Hrant\My Documents\Visual Studio 2005\Projects\test2\test2\Debug\BuildLog.htm"
1>test2 - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Но когда выплывает окно коммандой строки выплывает еще одно окошко "Visual Studio Just-In-Time"  smile 
PM MAIL   Вверх
Alek86
Дата 10.11.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



ты стек переполняешь

уменьши размеры массива или сделай его динамическим


--------------------
user posted image    user posted image
PM MAIL   Вверх
Vredniy
Дата 10.11.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



А можно пример  smile 
PM MAIL   Вверх
Alek86
Дата 10.11.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



я ж не знаю, что тебе нужно
можно чуть подробней?


--------------------
user posted image    user posted image
PM MAIL   Вверх
magadan87
Дата 10.11.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 2.11.2007
Где: Томск

Репутация: 0
Всего: 1



Цитата(Vredniy @  10.11.2007,  18:48 Найти цитируемый пост)
А можно пример  smile  


Код

float **matrix; /* объявление указателя на массив */
int row, col; /* объявление переменных под кол-во строк и столбцов*/
int i, j;  /* объявление индексов для работы с массивом */
 
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col); 
 
/* выделение памяти под строки */
matrix = (float**)malloc(row * sizeof(float*));  
 
/* выделение памяти под столбцы */
for ( i =0; i<row; i++ )  
  matrix[i] = (float*)malloc(col * sizeof(float)); 
 
/* заполняем массив и сразу расспечатываем */
for(i = 0; i < row; i++)
{
  for(j = 0; j < col; j++)
  {
     matrix[i][j] = (i+j)*1.1f;
     printf("%4.1f    ", matrix[i][j]);
  }
  putchar('\n');
}
/*освобождаем память когда массив уже не нужен(как минимум в конце программы)*/
//пример динамического массива в С (при помощи функции malloc) взят с codenet

подойдёт?)

Это сообщение отредактировал(а) magadan87 - 10.11.2007, 19:04
PM MAIL   Вверх
Lazin
Дата 10.11.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



может лучше не насиловать мосх и использовать STL
Код

std::vector<std::string> array;

это одномерный массив строк, но его можно использовать и как 2х мерный
Код

int height = 20, width = 30;
for(int i = 0; i < height; i++)
for(int j = 0; j < width; j++)
{
   array.push_back( std::string() );//заполнение массива из height*width элементов
}
int x = 10;
int y = 5;
array[y*width + x] = "bla bla bla";//обращение к элементу с индексом x-y

если массив очень большой то лучше использовать разреженный массив, иначе будут очень большие накладные расходы на хранение указателей
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.