Форум программистов, компьютерный форум, киберфорум
Наши страницы

Функции, передача массива в качестве параметра - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в работе с классом "очередь" http://www.cyberforum.ru/cpp-beginners/thread53338.html
Скажите пожалуйста, почему указатель на хвост очереди после инициализации всегда направлен в NULL, а на голову в адрес 158? (через конструктор программа проходит нормально) Почему функция заполнения...
C++ Дать совет по ООП Скажите, на какой вид проектов на студии 2005 стоит переходить после изучения полностью консоли на с++ в студии 2005, чтоб писать полноценные приложения виндоус на форме с использованием кнопок и... http://www.cyberforum.ru/cpp-beginners/thread53334.html
C++ Работа с графикой
Доброго времени суток ув. форумчане. Вобщем так, я еще совсем новичок, пытаюсь написать программу, задача ее в том чтобы выводить на экран текст нужного цвета. Работаю в Dev C++. Сначала проблема...
C++ Нужен коментарий
Народ прокоментируйте этот код: #pragma once template <class T> struct TreeEl{ T data; TreeEl<T> *pLeft,*pRight,*pParent; TreeEl(T d):data(d),pLeft(0),pRight(0),pParent(0) {}
C++ Массив на 200 элементов http://www.cyberforum.ru/cpp-beginners/thread53319.html
Задача в С . дан массив размером 200, заполнить его случайными числами в интервале от -50 до 50 . Далее определить какое значение встречается в массиве чаще остальных и вывести на экран какое это...
C++ вывод пикселя Привет всем. Мне нужна ваша помощь. Вообщем задание таково: Построить программу, которая вводит координаты точки (x, y) и определяет, попадает ли точка в заштрихованную область на рисунке, который... подробнее

Показать сообщение отдельно
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
01.10.2009, 13:30
#pragma,

Rififi, а почему не работало?

В этом случае не работало потому, что функция ожидала указатель, а передавался двумерный массив. Одно в другое не приводится.

Ведь если у функции есть параметр-указатель,то можно передавать и массивы?

Верно, но с некоторыми ограничениями. Самое главное из которых - когда компилятор неявно преобразует имя массива в указатель на первый элемент, то теряется информация о типе объекта.
(был массив, имеющий вполне определённый размер, стал некий указатель)
Ну и еще то, что нельзя таким образом передать имя двумерного массива в функцию, ожидающую int** - т.к. расположение данных в памяти отличается (это проявится только на стадии выполнения программы).

Или ошибка потому,что параметр передаётся как const,и это связано с неявными преобразованиями указателя в массив?

нет, const влияет только на то, что данные, которые адресует такой указатель нельзя изменить, причем об этом следит сам компилятор а не программист.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.