Форум программистов, компьютерный форум, киберфорум
Наши страницы

memcpy/CopyMemory + 2-мерный динамический массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возможно ли так ? http://www.cyberforum.ru/cpp-beginners/thread143516.html
Нужен ваш совет. Правилен ли следующий код, и корректен ли будет указатель на массив ? WORD* Index; Index = new WORD ; for (int i=0;i<=NumParticles;i++) { Index=i*4; Index=(i*4)+1;
C++ Прога для вывода кодовой таблицы cp866 #include <conio.h> #include <iostream.h> int main() { int i; cout<<"Code table(cp866):"<<endl; for(i=0;i<=255;i++) cout<<endl<<"code: "<<i<<"\t"<<"simbol: "<<(char)(i); http://www.cyberforum.ru/cpp-beginners/thread143501.html
C++ Программа работает не полностью.
В классе по кординатим прямоугольника определить периметр, площать и длину сторон, учесть что стороны могут меняться. #include <conio.h> #include <iostream.h> #include <math.h> class...
Дайте содержательное определение операциям с последовательностью, стеком и очередью. C++
Дайте содержательное определение операциям с последовательностью, стеком и очередью. void F7(int k){ for (int i=0; SEQ!=0; i++); int c = SEQ; SEQ = SEQ; SEQ=c; } кому не трудно помогите...
C++ Игра на С++ http://www.cyberforum.ru/cpp-beginners/thread143485.html
Ну в общем нужна вам или нет, но всё равно выложу:) Это крестики-нолики. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h>
C++ Исправьте ошибку Исправьте ошибку пожалуйста или подскажите где я допустил ошибку. Программа сортировки массива. вот код, а вот что оно мне выводит: вроде оно мне не показывает последний шаг сортировки и... подробнее

Показать сообщение отдельно
Dulotanka
22.09.2010, 12:18
По поводу 1 варианта рисовать надо, там в float **p сначала идут указатели (float*) в количестве y штук, затем сами данные (float) в количестве x*y. Нулевой указалеть (float* p[0]), указывает на нулевую строку массива, т.е. чтоб получить элемент 0;0 *(p[0] + 0) или p[0][0]. Первый укачатель, указывает на первую строку. В общем чтоб понятней было надо рисовать).. чето не хочется мне.

Вот второй вариант попроще, тут одномерный массив представляется двумерным
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
28
29
30
31
32
33
34
35
36
template <class T>
class CArray2{
    T *m_pData;
    WORD m_wSizeCol;    
public:
    CArray2(){m_pData = 0;}
    ~CArray2(){if(m_pData) delete m_pData;}
    void Destroy(){if(m_pData) delete m_pData;}
    void Create(WORD wSizeCol, WORD wSizeRow)
    {
        Destroy();
        m_pData = new T[wSizeCol * wSizeRow];
        m_wSizeCol = wSizeCol;      
    }
    T* operator[](int i){return m_pData+i*m_wSizeCol;}
};
 
CArray2<float> arrFloat;
arrFloat.Create(5, 5);     //создаем массив размерностью 5х5
arrFloat[1][2] = 4.5;      //заносим значение
 
//а вот тоже самое, что в сообщение над этим. Только с использованием моего класса
 
int size = 30;
int row = 5, column = 6;
CArray2<int> arr;
arr.Create( row, column );
        
for ( int i = 0; i < size; ++i )
    arr[0][i] = i + 1;
        
for ( int i = 0; i < row; ++i ){
     for ( int j = 0; j < column; ++j )
           std::cout << std::setw(2) << std::right << std::setfill('0') << arr[ i ][ j ] << ' ';
     std::cout << std::endl;
}
Этот вариант 100% рабочит, в консольке проверил)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru