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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
02.12.2011, 11:44     Указатель на двумерный массив #1
Допустим, у меня есть функция:

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 **'"

Помогите разобраться, и скажите, как было бы правильно, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2011, 11:44     Указатель на двумерный массив
Посмотрите здесь:

C++ Указатель на двумерный массив
C++ Указатель на двумерный массив и выше
Указатель на двумерный массив C++
указатель на двумерный массив C++
C++ Указатель на двумерный массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
02.12.2011, 21:43     Указатель на двумерный массив #21
Цитата Сообщение от AncinetHero Посмотреть сообщение
Почему программа ругается на:
C++
1
2
3
4
struct C{
    float **b=new *float [a];
    for(int i=0;i<a;i++)b[i]=new float[a];
}
Начинается ругань с
C++
1
new *float [a];
Потому что в структуре не могут использоваться предложения с выполнением кода. Структура может состоять из объявлений и/или определений данных и функций.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
02.12.2011, 21:54  [ТС]     Указатель на двумерный массив #22
В этой строке в любом случае есть ошибка, все равно где она находится.

C++
1
float **b = new *float [a];
А именно ошибка в звездочке тут:
C++
1
new *float [a];
Какая? о_О
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.12.2011, 22:00     Указатель на двумерный массив #23
Цитата Сообщение от AncinetHero Посмотреть сообщение
float **b = new *float [a];
C++
1
2
float **b ;
b =  new float * [a];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 22:01     Указатель на двумерный массив
Еще ссылки по теме:

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

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
02.12.2011, 22:01     Указатель на двумерный массив #24
звездочка должна быть после типа, а не перед
C++
1
float **mas = new float* [a];
Yandex
Объявления
02.12.2011, 22:01     Указатель на двумерный массив
Ответ Создать тему
Опции темы

Текущее время: 13:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru