Форум программистов, компьютерный форум 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++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.01.2010, 17:27     Проход матрицы используя указатели
Этот код и не будет работать. Я могу его исправить что бы он работал, но думаю для Вас это не так важно.
C
1
int n[] = {0,1,2,3,4,5};
Вот так можно писать, здесь вы создаете статически массив
C
1
{0,1,2,3,4,5};
и присваиваете его int n[] - указателю на массив неизвестного размера. Так делать можно, компилятор пропустит. Но вот этот код, я опишу с точки зрения компилятора, что бы было понятнее:
C
1
2
3
4
5
void R(int n[])// в параметрах функции будет передаваться указатель на массив неивестного размера. Именно в этой строчке будет создаваться копия указателя на массив элементов типа int неизвестного размера, а значит размер массива будет избран равным 1. 
{
    for (int i = 0, _b(sizeof(n) / sizeof(n[0])); i < _b; ++i)// ну а дальше все понятно
        printf("%d",n[i]);
}
Вы попробуйте, что бы разобраться написать вот так:
C
1
2
3
int n[] = {0,1,2,3,4,5};// разница в том, что в этой строке, мы сразу инициализируем и переменную n и размер массива на который она будет указывать
for(int i=0; i<6; i++)
printf("%d ", n[i]);
а потом так:
C
1
2
3
4
int n[];// а вот здесь мы этот момент упустили
n = {0,1,2,3,4,5};// теперь так сделать не получится
for(int i=0; i<6; i++)
printf("%d ", n[i]);
Добавлено через 13 минут
Цитата Сообщение от outoftime Посмотреть сообщение
ладно, сделаю вид что понял, может с опытом как-то прийдет..
обязательно прийдет. Еще раз повторюсь: нет двумерных массивов в компьютере. Их придумали люди, которым это придумывание, помогает решить например задачи СЛАУ, задачи вывода на экран изображений, задачи связанные с лабиринтами и т.п. А решение задачи создания двумерных массивов было примерно таким: на данный момент можно выделять память под какие-либо подряд идущие элементы. А если выделить два раза такую память, то уже получается двумерный массив в две строки. Люди же умные существа, обязательно обойдут любую преграду, даже до которой компьютер не додумается (на самом деле думающий из них обоих только один).
 
Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru