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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализаця стека из стеков http://www.cyberforum.ru/cpp-beginners/thread397049.html
такое задане: Приведите четыре способа реализации стека из стеков . Напишите для каждой реализации следующие программы: - удалениестека из стеков стека qq и присваивает ее q; - помещает стек q в qq; - удаляет элемент из первого стека в qq и присваивает его x; - помещает элемент х в первый стек qq. Как реализовать данную структуру?
C++ задача на строки.с++ подсчитайте количество шипящих букв в слове. http://www.cyberforum.ru/cpp-beginners/thread397040.html
Массивы C++
как задать массив в C++, который в паскале выглядит так: var a : array of integer
C++ Не выполняется сортировка
Вот часть моей программы #include <iostream> #include <conio.h> #include <fstream> #include <vector> #include <iomanip> #include <cstdlib> #include <algorithm> #include <windows.h> using namespace std;
C++ как cделать простую задачу на С++ http://www.cyberforum.ru/cpp-beginners/thread397013.html
Проверить, есть ли одинаковые цифры в смежных разрядах. (пожалуйста напишите код очень нужно, никогда на С++ не писал)
C++ Объясните как начать работу в Dev-C++ Знаю средне Delphi хотел выучить с++ но не понимаю как создать проект подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
02.12.2011, 18:04     Указатель на двумерный массив
Цитата Сообщение от AncinetHero Посмотреть сообщение
Допустим, у меня есть функция:

C++
1
2
3
4
void A(float **b)
{
b[0][0]=1;
}
Тогда почему выдает ошибку при следующем:

C++
1
2
3
const int a=100;
float b[a][a];
A(b);
Сама ошибка:
"невозможно преобразовать параметр 4 из 'float [100][100]' в 'float **'"

Помогите разобраться, и скажите, как было бы правильно, пожалуйста.
Потому что это разные типы данных, о чем вам недвусмысленно говорит компилятор. Когда вы передаете свой массив в качестве аргумента функции, то преобразыется в указатель на свой первый элемент. А первым элементом двумерного массива является одномерный массив, соответствующий его строке. То есть при передаче вашего массива в качестве аргумента он преобразуется к типу float ( * )[100], который очевидно нре соответствует типу float **

Поэтому, чтобы у вас работала программа, объявите функцию следующим образом

C++
1
2
3
4
void A( float (*b )[100] )
{
b[0][0]=1;
}
 
Текущее время: 02:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru