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

Указатели в двумерном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Литература для начинающих http://www.cyberforum.ru/cpp-beginners/thread20131.html
всех с НГ!))) посоветуйте что почитать человеку который с программированием на Вы а в частности по С++...
C++ Вопрос про статический массив Люди, у меня вопрос, подскажите пожалуйста почему я не могу создать статический массив(не важно какого типа) больше 1 мегабайта (в среднем)? К примеру, статический массив типа char из 1000 000 элементов создается, но больше- нет, также и с типом int (примерно максимальное кол-во элементов можно создать 250 000, он занимает 4 байта, т.е. больше char в 4 раза, соответственно, кол-во элементов в 4... http://www.cyberforum.ru/cpp-beginners/thread20124.html
C++ Дан символьный файл f, содержащий сведения о сотрудниках учреждения
Дан символьный файл f, содержащий сведения о сотрудниках учреждения, записанные по следующему образцу: фамилия_имя_отчество,фамилия_имя_отчество,....Записать эти сведения в файле g, используя образец: имя_отчество_фамилия,имя_отчество_фамилия....
Выделение памяти C++
Какая разница между выделением памяти функциями malloc, calloc, realloc и оператором new? И как изменить размер выделенной памяти без потери текущих значений если память была выделена оператором new? Можно ли тогда использовать realloс?
C++ Найти сумму, разность, произведение и частное от деления первого числа на второе http://www.cyberforum.ru/cpp-beginners/thread20061.html
Даны два числа. Найтиих сумму, рахность, произведение и частное от деления первого числа на второе :help:, у меня просто небыло ни одного урока по C++, то есть я полный и 100% 0
C++ Как получить системное время и дату? В поиске искал и не нашел. Вопрос, значит, такой: Есть у меня допустим класс t_and_d и в него входят 2 переменные. в одну необходимо передать текущее системное время, и во вторую текущую системную дату. Как это сделать с помощью стандартных библиотечных функций времени и даты? подробнее

Показать сообщение отдельно
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
02.01.2009, 13:08     Указатели в двумерном массиве
Feni}{,я тебе еще раз повторяю.От перемены мест слагаемых сумма не меняется. Эта строчка ничего не делает.

Поясню,как строится 2-мерный массив в памяти. Один из вариантов.
[0,0] [0,1] [0,2] ....... [0,n] [1,0] [2,0] ...... [2,n] ....... [n,0] [n,1] ... [n,n]
где запись [i,j] означает элемент на i-й строке j-го столбца.

Как ты должен понимать,память - штука одномерная,она как большая лента. Имитировать двумерность можно,например, записывая строки матрицы друг за другом в памяти. Тогда,чтобы попасть на начало i-й строки нужно сместиться относительно начала массива на i*n элементов.
А твоя запись *(mas + i+j) смещает на i+j элементов отн-но начала,как ты их ни меняй местами.Эта запись,кстати,полностью эквивалентна записи mas[i+j].Сам подумай,последний элемент,к которому ты обратишься будет иметь номер 2n, а у тебя их n^2.

P.S Можно с тем же успехом хранить друг за другом столбцы. Главное понимать,что ты вообще делаешь.
P.P.S Я хочу,чтобы ты взял бумагу,нарисовал "оперативную память" и подумал,как все это работает. В следующий раз хочу увидеть твой работающий код,а не вопрос или неправильное пояснение. Я пояснил принцип.
 
Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru