Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый вечер!
Есть функция создающая квадратную матрицу, по числу параметров и самим элементам. Опущу все проверки и другое, не важное здесь:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2013, 20:20
Ответы с готовыми решениями:

Функции с переменным числом параметров
Добрый день, уважаемые знатоки С++! Подскажите пожалуйста, что не правильно в моем коде? ...

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

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

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

3
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
19.03.2013, 20:23 2
Да никто так не делает.
1) для функций с переменным числом аргументов есть va_start и.т.п! google it
2) Но даже va_start тут не нужен и мало когда используется!
3) для передачи в функцию массива чисел передают указатель на первый элемент массива и не парят себе мозги с va_start
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
19.03.2013, 20:26 3
Цитата Сообщение от UrbanLynx Посмотреть сообщение
переходит на какой то левый адрес, где числа нет.
Как передавать параметры в функцию - дело компилятора.
Работайте с va_list
0
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
19.03.2013, 20:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2013, 20:31
Помогаю со студенческими работами здесь

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

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

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

Функции с переменным числом параметров
Лабораторная работа: задание написать программу,используя функцию с переменным числом параметров,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru