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

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

Войти
Регистрация
Восстановить пароль
 
UrbanLynx
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29
#1

Работа функции с переменным числом параметров - C++

19.03.2013, 20:20. Просмотров 376. Ответов 3
Метки нет (Все метки)

Добрый вечер!
Есть функция создающая квадратную матрицу, по числу параметров и самим элементам. Опущу все проверки и другое, не важное здесь:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
double **getmatrix(int n, ...)            
{  
    int *p = &n;
    p++;               
    double *pp = (double *)p;    
 
    double **m = NULL;
    NewMatrix(m,4,4); 
    for (int i=0; i<4; i++)
    {
        for (int j=0; j<4; j++)
        {
            m[i][j] = (*pp);
        }
    }
    return m;
}
 
void NewMatrix(double **&mMatrix,int Rows, int Cols)
{
    mMatrix = new double *[Rows];   
    for (int i=0; i<Rows; i++)
    {
        mMatrix[i] = new double [Cols];
    }
}
Вызов например так:
C++
1
double **m=getmatrix(16,1.,0.,0.,0.,0.,1.,0.,0.,0.,0.,1.,0.,4.,0.,0.,1.);
Функция прекрасно работает в пустом консольном проекте с одним мэйном, собственно матрицей строчкой выше и двумя функциями.
Теперь самое интересное - есть win forms приложение и в какой-то момент вызывается эта функция с этими же аргументами. Но при переходе к следующему за n числу(p++) переходит на какой то левый адрес, где числа нет.
Что подскажете по этому поводу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2013, 20:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа функции с переменным числом параметров (C++):

Функции с переменным числом параметров - C++
Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2+a3*a4+a5*a6+. . . . . ...

Функции с переменным числом параметров - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; int max(int k,...) { int *p=&amp;k; int maxi; for(;k!=0;k--)

Функции с переменным числом параметров - C++
Написать функцию max с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип параметров...

Функции с переменным числом параметров - C++
Прошу помочь знатоков С++ в решении задачи, т.к. только начал изучать данный язык. Решить задачу, используя функции с переменным...

Функции с переменным числом параметров - C++
Функция должна принимать переменное количество аргументов, последним из которых является 0, и скажем просто их печатает. Делаю по примеру...

Функции с переменным числом параметров - C++
помогите доработать пожалуйсто Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел,...

3
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
19.03.2013, 20:23 #2
Да никто так не делает.
1) для функций с переменным числом аргументов есть va_start и.т.п! google it
2) Но даже va_start тут не нужен и мало когда используется!
3) для передачи в функцию массива чисел передают указатель на первый элемент массива и не парят себе мозги с va_start
0
Croessmah
Эксперт CЭксперт С++
13415 / 7566 / 855
Регистрация: 27.09.2012
Сообщений: 18,618
Записей в блоге: 3
Завершенные тесты: 1
19.03.2013, 20:26 #3
Цитата Сообщение от UrbanLynx Посмотреть сообщение
переходит на какой то левый адрес, где числа нет.
Как передавать параметры в функцию - дело компилятора.
Работайте с va_list
0
UrbanLynx
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29
19.03.2013, 20:31  [ТС] #4
Прошу прощения, забыл упомянуть - с va_list тоже пробовал конкретно по статье с rsdn'a, результат такой же как и с указателями. Вариант указателей привел как самый простой.

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
для передачи в функцию массива чисел передают указатель на первый элемент массива и не парят себе мозги с va_start
В передачи чисел и есть смысл - в зависимости от действий пользователя формируется одна из 9 матриц 4х4, которые и создаются этой функцией.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2013, 20:31
Привет! Вот еще темы с ответами:

Функции с переменным числом параметров - C++
Написать функцию prost с переменным числом параметров, которая находит все простые числа из нескольких интервалов. Интервалы задаются...

Функции с переменным числом параметров - C++
Такая проблема есть код который должен выводить поочередно цифры, 1 2 3 4 5, я пытаюсь программировать в dev c++ и компилятор выводит 1 0 2...

Функции с переменным числом параметров - C++
функции с переменным числом параметров в качестве параметра форматная строка,как задать это дело в Cи и что можно сказать преподу

Функции с переменным числом параметров - C++
Подскажите как работают функции с переменным числом параметров, как их составлять. Почитал немного в инете про это, кажется только больше...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
19.03.2013, 20:31
Ответ Создать тему
Опции темы

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