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

Проход матрицы используя указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сижу на зачете !! http://www.cyberforum.ru/cpp-beginners/thread81683.html
Народ, плиз помоите. сижу на зачете. Написать прогу котрая считывает массив целых чисел с клавиатуры, пользователь вводит значение и прога ищет это значение в массиве... ПЛИЗ с использованием указателей
C++ Страж включения - это... ? Всем доброго времени суток. Меня заинтересовал такой вот вопрос - Что такое "Страж включения", для чего используется, и "с чем его едят" ? )) http://www.cyberforum.ru/cpp-beginners/thread81621.html
Ошибка сегментации... C++
Пытаюсь написать программу, которая может хранить массив из произвольного числа объектов класса. Но при попытке записать данные в класс, программа вылетает. Как же быть? Оператор new - НЕ подходит, т. к. количество объектов массива может быть изменено в любой момент, и следовательно, память будет постоянно "перевысвобождаться". Вот эксиз класса: class person {
C++ ошибка vs
когда пытаюсь запустить игру выходит ошибка http://www.cyberforum.ru/games/thread42138-page2.html мне кажется что это из-за visual studio , помогите может кто знает в чём проблема. Добавлено через 2 часа 36 минут проблема: хочу например поиграть в gta 4, при запуске не дает запустится visual studio 2005 выпрыгивает окошко, какая-то там отладка нужна и т.д и не запускается игра, как от нее...
C++ ввод матриц http://www.cyberforum.ru/cpp-beginners/thread81352.html
Есть задача "Написать и протестировать функцию для сложения и вычитания вещественных матриц. Одним из формальных параметров должен быть признак вида операции." Возник вопрос: по задаче должны складываться и вычитаться матрицы. Но! дано N-кол-во матриц (допустим нужно сложить не 2, а 5 матриц) как объявить это кол-во матриц, что они произвольного размера ( размер вводим с клавиатуры ( A B Cи...
C++ Исправьте прогу, пожалуйста! Прога про массивы.... Задача:Написать программу. Размерности массивов вводить с клавиатуры. Элементы массивов по желанию пользователя вводить с клавиатуры или генерировать случайным образом в заданных пределах. Исходные данные и результаты выводить на экран дисплея в табличном виде. В квадратной матрице поменять местами элементы, симметричные относительно главной диагонали. Пытался написать прогу, много ошибок,... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.01.2010, 14:45     Проход матрицы используя указатели
Голова плохо работает. Может из-за этого плохо воспринял вопрос, но думаю что ответ дам исчерпывающий. На самом деле, выделяя динамически память под двумерный массив (например для массива размерностью n*n), мы всегда выделяем просто память. все вот эти деления двумерный или одномерный это придумали мы сами. Для компьютера, что двумерный массив размером 3*3 для типа int, что одномерный размерностью 9 типа int, без разницы. Даже объявить например можно так:
C
1
int a[3][3]={1,2,3,4,5,6,7,8,9};
И в дальнейшем обращаться можно a[2][0] (это значение будет в данном случае 7).
В С можно объявить поэтому динамически массив 3*3 так:
C
1
int *a= (int *)malloc (3 * 3*sizeof (int));
или
C
1
int a= (int *)malloc (9*sizeof (int));
а потом обращаться к элементу массива так (например к элементу во второй строке, нулевом столбце): *(a+6), т.е. не очень удобно в последующих обращениях, вот поэтому есть вариант который я показал в своем коде (в посте 4), там обращаться можно к тому же элементу вот так: a[2][0].
Разница еще есть в том что если выделять память как писал здесь выше, то память выделяется сразу вся с одним адресом. А если выделять как писал в посте 4, то выделяется память n раз, и каждый раз адрес выделяемой памяти присваивается разным указателям. И в этом случае *(a+6) - уже даст неправильный результат.
Цитата Сообщение от outoftime Посмотреть сообщение
sizeof(int*);
- размер указателя на память для хранения int. Сам не проверял никогда, но есть большое подозрение, что на разных компьютерах это значение будет разным, как и размеры различных встроеных типов.
 
Текущее время: 15:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru