![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
OverloaD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
Требуется в Си переписать значения одной матрицы в другую такого же размера и типа. Память под обе матрицы выделена. Для этого я написал такой цикл:
for(N=0;N<size;N++) { for(M=0;M<size;M++) { for(N2=0;N2<size;N2++) { for(M2=0;M2<size;M2++) { Matrix[N][M]=Matrix2[N2][M2]; } } } } наверняка это можно сделать качественнее и быстрее, но с моими знаниями мне это не под силу. Компилируется программа нормально, но когда доходит до этого самого цикла(уже в самом диалоговом окне) вылазит окошко с предложением отправить отчёт об ошибке (ну вы поняли ![]() Matrix[N][M]=Matrix2[N2][M2]; так вот, подскажите пожалуйста как эту ошибку устранить, полный текст программы ниже. Заранее большущее спасибо!
|
|||
|
||||
Neitron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 2 Всего: 5 |
Извини))) Но ты даааааааааааааааааааааллллллллллл=))))))
Вот так делай. Это сообщение отредактировал(а) Neitron - 7.11.2005, 18:30 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Строго говоря, ни в Си, ни в Си++ многомерного массива не существует. Его можно эмулировать с помощью массива указателей на массивы (как у тебя в примере), но это неудобно и дорого. Лучше для эмуляции двумерного массива размера X*Y использовать обычный одномерный массив длинной X*Y, где элемент [i][j] определяется как m[i * X + j]. Тогда вместо того, чтобы циклы гонять, можно было обойтись одним memset().
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
OverloaD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
вместо того чтоб писать мне какой я дурак, могли бы ответить по вопросу, я же написал что наверняка можно сделать это легче, но я же не знаю к примеру что такое memset() и мне надо сделать эту задачу на уровне МОИХ знаний, поэтому или помогите или не пишите ничего
|
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Сорри, очепятка вышла. Не memset(), а memcpy()
![]() -------------------- Не смей читать мою подпись!!! |
|||
|
||||
OverloaD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
ну я не знаю и что такое memcpy(), может всё-таки помогёте???
![]() |
|||
|
||||
Dark Elf |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 26.12.2003 Где: Брисбен Репутация: 9 Всего: 10 |
memcpy() используется для копирования одного участка памяти в другой. Вот тебе кусок примера из MSDN (оставил то что связано с memcpy())
|
||||
|
|||||
OverloaD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
спасибо за помощь, вопрос исчерпан
|
|||
|
||||
OverloaD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 3.11.2005 Репутация: нет Всего: нет |
2Neitron, снк, я сначала не заметил что ты исправленй вариант написал, думал просто написал, что я дурак и всё
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |