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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ступенчатый массив 
:(
    Опции темы
Helicopterr
  Дата 31.10.2005, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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




Подскажите, как в С++ создать ступенчатый массив?
На С# (для примера) я делаю так:
Код

short[][] MYARRAY = new short[2][];
MYARRAY[0] = new short[1];
MYARRAY[1] = new short[2];
MYARRAY[2] = new short[3];

Но нужно на С++


--------------------
people can fly
PM MAIL   Вверх
Mayk
Дата 31.10.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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




Код

short** myarray = new short*[3];
myarray[0] = new short[1];
myarray[1] = new short[2];
myarray[2] = new short[3];
...
delete[] myarray[0];
delete[] myarray[1];
delete[] myarray[2];
delete[] myarray;



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
nikf
Дата 31.10.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

int** MYARRAY = new int*[3];
MYARRAY[0] = new int[1];
MYARRAY[1] = new int[2];
MYARRAY[2] = new int[3];

///
for(int i=0;<3;i++)
delete[] MYARRAY[i];

delete[] MYARRAY;


Это сообщение отредактировал(а) nikf - 31.10.2005, 20:24
PM MAIL   Вверх
Helicopterr
Дата 31.10.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так и думал! пасибо


--------------------
people can fly
PM MAIL   Вверх
Helicopterr
Дата 31.10.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Oops, Mayk, nikf I have a trouble

error C2466: cannot allocate an array of constant size 0
error C2501: 'myarray' : missing storage-class or type specifiers
error C2372: 'myarray' : redefinition; different types of indirection
error C3861: 'myarray': identifier not found, even with argument-dependent lookup
...



--------------------
people can fly
PM MAIL   Вверх
Mayk
Дата 31.10.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Это даже хомяк компилирует.
Покажи код smile


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Helicopterr
Дата 31.10.2005, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

//интерполяция (С)Helicopterr 2005 VS.NET

#include <iostream>
#include <math.h>
using namespace std;
#define SIZEN 4
#define stepX 5

short X[]={5, 10, 15, 20, 25}, Y[]={4, 14, 20, 2, 8};
// YPS[SIZEN][SIZEN] - c 2-мерным работает нормально

// --------------------------------
// пробуем делать ступенчатый:
short** YPS = new short *[SIZEN];
 YPS[0] = new short[1];
 YPS[1] = new short[2];
 YPS[2] = new short[3];
 YPS[3] = new short[SIZEN];
// --------------------------------
extern short x=0;

__int64 razl (short si)
{
if (si<0) return 1;
return((x-X[si]) * razl(si-1));
}

__int64 factorial (short si)
{
if (si <= 1) return 1;
return(si * factorial(si-1));
}

__int64 interp ( short y, short si)
{
if (si < 0) return y;
return(y + interp((YPS[si][NULL] * razl(si) / (pow(stepX, si+1) * factorial(si+1))), si-1));
}


int main()

    
short si, sj, y, rectangle = SIZEN;

for(si=0; si < SIZEN; si++)
{
YPS[NULL][si] = Y[si+1] - Y[si];
}


for(sj=0; sj<SIZEN; sj++)
{ rectangle--;
for(si=0; si < rectangle; si++){
YPS[sj+1][si] = YPS[sj][si+1] - YPS[sj][si];
 
}}


for (x=5; x<=25; x = x + stepX)
{       
y = interp (Y[0], SIZEN);
cout<<"\t"<<y;
}
       
   return 0; 




--------------------
people can fly
PM MAIL   Вверх
Mayk
Дата 1.11.2005, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



нда.
запихни все YPS[n]=new short[n+1] в main.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Nwpaunsir
Дата 10.3.2013, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можете подсказать?? Вот я написал часть кода и попробовал запустить но мне выдало ошибку при запуске(error C2372: 'M' : redefinition; different types of indirection)    Подскажите пожалуйста в чем я накосячил??


#include "stdafx.h"
#include "stdlib.h"
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;

int main()
{
    int tmp[4][4];
    int M[4];
     int *M=new int [4];
         delete [] M;

 system("pause");
    return 0;
}

PM MAIL   Вверх
Фантом
Дата 10.3.2013, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



Там же на нормальном английском языке написано, в чем. Зачем Вы два раза объявили M?

Цитата(Nwpaunsir @  10.3.2013,  17:07 Найти цитируемый пост)
    int M[4];
     int *M=new int [4];


PM   Вверх
Nwpaunsir
Дата 10.3.2013, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо

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

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

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

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

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


 




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


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

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