Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с массивами 
:(
    Опции темы
reddevel
Дата 9.5.2005, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



как сделать двухмерный массив непределенного размера?

сразу скажу что такой метод не катит т.к. зарание колличетво элементов массивов не известно!

Код

int n=StrToInt(Edit1->Text);
float **matr;
matr= new float*[n];
for(int cx=0; cx<=n; cx++)
{
  mart[cx]= new float[n]
  if (matr[cx] ==NULL)
    {
        ShowMessage("Руби канаты память закончилась");      
        return;   
   }
}



просто в процессе работы программы добовляется новый элемент массива со своим набором свойств(длинна, ширина ,высота , и т.д.).

по сути в проге реализуется бинарное дерево через массив.


PM MAIL WWW ICQ   Вверх
codelord
Дата 9.5.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



А ты пробовал использовать такие функции как, malloc, calloc.??
вот пример прогарммы использующей эти функции.
// calloc использует два параметра сколько и какого размера.
// Код упорядочивания массива из n элементов.
Код

#include<stdio.h>
#include<stdlib.h>
void main(){
float *t;
int i,n;
printf("\n n=");
scanf("%d",&n);
t=(float*)malloc(n*sizeof(float));
for(i=0;i<n;i++)
{printf("x[%d]=",i);
scanf("%f",&t[i]);
}
for(i=n-1;i>=0;i--)
{
if(i%2==8)printf("\n");
printf("\tx[%d]=%f",i,t[i]);
}
free(t);
}

Вот как сделать динамический двумерным массив пока не сталкивался. Но думаю решается подобным образом.
Добавлено @ 18:15






Это сообщение отредактировал(а) codelord - 9.5.2005, 18:20


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
tigger
Дата 10.5.2005, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

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



Попробуй следующий код:

Код

#pragma hdrstop
#include <stdlib.h>
#pragma argsused
//динамический массив с возможность наращивания размерности

void main()
{
int** data; //сам массив

//размер 6х6

data = (int**) malloc(6*sizeof(int));

for (register int i = 0; i < 6; i++)
data[i] = (int*) malloc(6*sizeof(int));

//наполняем значениями
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
data[i][j]=i*j+i;

//увеличиваем размер до 7х7
data = (int**) realloc(data,7*sizeof(int));

for (register int i = 0; i < 7; i++)
data[i] = (int*) realloc(data[i],7*sizeof(int));

//удаляем массив
free(data);
}


все должно работать... smile


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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