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

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 polynom { private:
Дайте содержательное определение операциям с последовательностью, стеком и очередью. 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++ Исправьте ошибку Исправьте ошибку пожалуйста или подскажите где я допустил ошибку. Программа сортировки массива. вот код, а вот что оно мне выводит: вроде оно мне не показывает последний шаг сортировки и скопированный массив не хочет верно что то работать. #ifndef Mass1_h #define Mass1_h1 #include <iostream.h> #include <locale.h> #include<windows.h> #include <stdlib.h> #include <stdio.h> подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
03.09.2010, 11:13     memcpy/CopyMemory + 2-мерный динамический массив
Цитата Сообщение от _lacrimosa_ Посмотреть сообщение
В общем я понял. В моём коде двумерный массив представлен так: есть одномерный непрерывный массив из адресов. Каждый элемент этого массива это адрес одномерного массива float'ов. Таким образом, сами данные (5*5 float'ов) могут быть в разных участках памяти (однако непрерывно хранятся только строки по 5 float'ов).
Ключевым моментом в использовании memcpy было непрерывность памяти из этих 25 эл-тов. Поэтому компилятор и ругался, что есть только 20 байт (5 эл-тов).
Правильно поняли! Если так необходимо иметь массив из 25 последовательно идущих элементов, при этом работать с ним, как с двухмерным массивом, можно как-то так поступить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <iomanip>
 
int main(){
    int size = 30;
    int row = 5, column = 6;
    int * arr = new int [ size ];
    
    for ( int i = 0; i < size; ++i )
        arr[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 * column + j ] << ' ';
        std::cout << std::endl;
    }
    
    delete [] arr;
    return 0;
}
Цитата Сообщение от Dulotanka Посмотреть сообщение
за работу кода не отвечаю, но логика должна быть ясна
Не-а! Объясните как-нибудь доходчиво...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru