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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Saub
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
#1

Не получается присвоить значение указателя в функции - C++

14.04.2012, 16:09. Просмотров 1397. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
void Gauss(double *x[n],double b[n])
{
for (int i = n-1; i >0 ; i--) {
    *x[i]=0;
    for (int j = n; j < i; j--) {
    *x[i]+=-*x[j]*A[i][j];
    }
    *x[i]=*x[i]+b[i];
}
Cобственно говоря этот код компилируется, но не присваивает значение и вылетает с ошибкой Хотелось бы понять в чем ошибка?
P.S. A-глобально объявлена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается присвоить значение указателя в функции (C++):

Как присвоить указателю значение другого указателя внутри процедуры? - C++
Подскажите пожалуйста. Вот я хочу одному указателю присвоить значение другого указателя внутри процедуры. Как это сделать ? Вот мой код. ...

Надо указателю на long int присвоить значение указателя на char - C++
//есть указатель unsigned char* p_to_char = somthing; //и указатель unsigned long int* p_to_int; //надо p_to_int присвоить...

Не получается присвоить значение указателю на функцию - C++
В строке 26 говорит, что не может конвертировать тип. Что неправильно? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Не получается присвоить значение двумерному массиву char - C++
объявляю двумерный массив (массив массивов в char для хранения имен файлов) в cpp файле char m_fname ; я хочу инициализировать...

Не получается присвоить значение элементу массива указателей типа char *a[3] - C++
В попытках разобраться с массивами, указателями, массивами указателей и т.п. написал вот такой код: int main() { char *a = {...

Как присвоить второму элементу массива в функции A(), значение, которое было возвращено из функции B()? - C++
Как присвоить к второму элементу массива в функции innfunc значение 10, который вернет innfunc1? Замечание: нельзя указывать b = 10, а...

8
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
14.04.2012, 16:15 #2
C++
1
double *x[n]
под этим у вас подразумевается двумерный массив?
переменная n тоже объявлена глобально?
0
Saub
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
14.04.2012, 16:17  [ТС] #3
Переменная n обявлена в #define. Нет под double *x[n] подразумевается одномерный массив.
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
14.04.2012, 16:27 #4
Цитата Сообщение от Saub Посмотреть сообщение
Переменная n обявлена в #define. Нет под double *x[n] подразумевается одномерный массив.
Если вам надо передать одномерный массив в фукцию, то правильно так
C++
1
2
3
void Gauss(double *x){
   x[0]=0; 
}
*x[n] - это объявление массива из n указателей
1
Saub
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
14.04.2012, 16:32  [ТС] #5
Хм, окей, спасибо, попробую.

Добавлено через 3 минуты
Мм, боюсь так тоже неверно.
C++
1
2
3
4
5
6
bool Res()
{double *x,x1;
    init();
    Bring();
    Gauss(x,B);
}
Таким образом я вызываю функцию:

C++
1
2
3
4
5
6
7
8
9
void Gauss(double *x,double b[n])
{
for (int i = n-1; i >0 ; i--) {
    x[i]=0;
    for (int j = n; j < i; j--) {
    x[i]+=-x[j]*A[i][j];
    }
    x[i]=x[i]+b[i];
}
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.04.2012, 16:35 #6
Надо память выделить, если я правильно понял проблему.
C++
1
double *x=new double[n];
1
Saub
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
14.04.2012, 16:37  [ТС] #7
Хм, а это действительно помогло. Спасибо.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.04.2012, 16:42 #8
Цитата Сообщение от Saub Посмотреть сообщение
Нет под double *x[n] подразумевается одномерный массив.
[] и * эквивалентны, применено одновременно то и другое, получается *x[n], **x и x[][] - одно и тоже. Массив двумерен.

Добавлено через 1 минуту
Цитата Сообщение от Saub Посмотреть сообщение
Переменная n обявлена в #define.
В дефайн нельзя объявить переменную.

Добавлено через 1 минуту
Цитата Сообщение от Saub Посмотреть сообщение
под double *x[n] подразумевается одномерный массив.
,
Цитата Сообщение от Saub Посмотреть сообщение
Gauss
. Метод Гаусса работает с матрицей.

Добавлено через 1 минуту
Цитата Сообщение от Saub Посмотреть сообщение
void Gauss(double *x[n],double b[n])
{
for (int i = n-1; i >0 ; i--) {
* * *x[i]=0;
* * for (int j = n; j < i; j--) {
* * *x[i]+=-*x[j]*A[i][j];
* * }
* * *x[i]=*x[i]+b[i];
}
Внутри нифига не Гаусс, в нём должно быть двойное вложение цикла + обратный цикл с однократным вложением.
0
Saub
2 / 2 / 0
Регистрация: 24.03.2011
Сообщений: 83
14.04.2012, 18:13  [ТС] #9
Ыыы, боюсь Вас огорчить. Я согласен что n это не переменная в данном случае, а по сути константа. По поводу неработоспособности мы еще посмотрим, притом что внутри не Гаусс, это лишь формирование вектора выходных переменных.

Добавлено через 1 час 22 минуты
В той функции действительно была одна ошибка, но в целом все верно.
0
14.04.2012, 18:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 18:13
Привет! Вот еще темы с ответами:

При очередном вызове функции сбрасывается значение указателя - C++
Нужно вникнуть в указатели и написать структуру-очередь. Вот что я делаю: void main() { struct WORKER *begin = NULL, *end = NULL;...

При передаче указателя в качестве аргумента функции теряется значение - C++
Добрый день. Есть простенькая задачка сделать связанный список. При этом создается первый эелемнт списка с нулевым указателем на...

Как функции присвоить значение false? - C++
Пишу крестики-нолики и в конце когда пользователь нажимает &quot;Начать сначала&quot; игра начинается сначала (цикл do-while), но в течении этого...

Как присвоить возвращаемое значение функции переменной? - C++
double sine(int index, int frequency) { return (100*sin(index*frequency)); } вопрос: как присвоить возвращаемое значение...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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