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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
#1

Аргументы у функции - C++

15.12.2013, 22:27. Просмотров 282. Ответов 5
Метки нет (Все метки)

C++
1
void String(int i, int j, int N, double a[N][N])
И компилятор студии 2010 выдает следующие ошибки:
1>Hello.cpp(48): error C2057: expected constant expression
1>Hello.cpp(48): error C2466: cannot allocate an array of constant size 0
1>Hello.cpp(48): error C2057: expected constant expression
1>Hello.cpp(48): error C2466: cannot allocate an array of constant size 0
1>Hello.cpp(48): error C2087: 'a' : missing subscript
1>Hello.cpp(219): error C2664: 'String' : cannot convert parameter 4 from 'double [20][20]' to 'double [][1]'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>
1>Build FAILED.

Программа большая, затычка только в этом месте. Почитал, что надо выделять память, пробовал-не получилось.
Помогите, пожалуйста.

P.S. Сама программка считает на CPU матрицу, если это полезно будет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 22:27     Аргументы у функции
Посмотрите здесь:

Аргументы функции по умолчанию C++
C++ Аргументы функции по умолчанию
Аргументы функции C++
C++ Аргументы функции main
C++ Аргументы функции по умолчанию
Аргументы функции main C++
C++ Аргументы функции main()
C++ Аргументы функции
C++ Аргументы Функции
C++ Аргументы функции main
Аргументы функции C++
C++ Аргументы функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 22:30     Аргументы у функции #2
Для размера массива, N нужно задать как константу, и изменить имя третьего параметра (с N на что-то другое).
Troll1
1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 91
15.12.2013, 22:34  [ТС]     Аргументы у функции #3
alsav22, у меня N в ядре объявлено:
C++
1
2
3
4
5
6
7
8
9
10
11
12
__kernel void stringkern(                        
int i,                                             
int j,                                             
int N,                                              
__global double * a)                              
{                                                   
double k;                                    
int q = get_global_id(0);                
k = a[N * j + j]/a[N * i + j];                   
if(q < N && q > j)                               
a[N * i + q]=a[N * i + q] - a[N * j + q]/k;   
}
И третий параметр тоже должен быть N-в моей программе это важно
S_el
2087 / 1594 / 305
Регистрация: 15.12.2013
Сообщений: 6,376
15.12.2013, 22:36     Аргументы у функции #4
Передавай массив по ссылке,а N отдельно,если это так важно.
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,940
Записей в блоге: 2
Завершенные тесты: 1
15.12.2013, 22:36     Аргументы у функции #5
Цитата Сообщение от Troll1 Посмотреть сообщение
И третий параметр тоже должен быть N-в моей программе это важно
тогда переделывайте функцию под указатели
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.12.2013, 23:42     Аргументы у функции #6
Цитата Сообщение от Troll1 Посмотреть сообщение
И третий параметр тоже должен быть N-в моей программе это важно
Каким боком это может быть важно? Ничего не путаете? Функция принимает копию под новым именем N.
Yandex
Объявления
15.12.2013, 23:42     Аргументы у функции
Ответ Создать тему
Опции темы

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