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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена двойных пробелов из входного файла на одиночный пробел и запись в выходной файл (объяснить работу кода) http://www.cyberforum.ru/cpp-beginners/thread813063.html
Здравствуйте, нашла код программы, которая заменяет в файле Input.txt двойные пробелы в исходном файле на одиночные пробелы и выводит это все в файл Output.txt. Помогите пожалуйста разобраться, как работает программа после второго "if", не понимаю, каким образом происходит замена и за что принимаются переменные i,k,l,n. Спасибо. #include "stdafx.h" #include <iostream> #include <ctype.h>...
C++ Массив char + перевод в int Нужно создать цикл в котором при вводе с клавиатуры символа в 16ричной системе (0-F) это число: 1. Переводилось в 10-ю систему счисления, типа int 2. Создавался элемент массива с этим 10чным числом (массив типа int, в названии темы неправильно указал) Условие выхода из цикла представляю как введение символа Q (можно и др. способ если есть идеи), а реализацию через case или for, else, else... http://www.cyberforum.ru/cpp-beginners/thread813062.html
C++ no operator ">>" matches these operands
Есть код с структурой. Всё неплохо идет, вроде, но когда пытаюсь ввести массив из 5 оценок здесь :Student * Amark = new Student ; for (int i = 0; i < a; i++) { for ( int j = 0; j < iSize; j++) cin>>Amark.iMark; } пишет : "no operator ">>" matches these operands" и "Ошибка 1 error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или...
C++ Цикл в цикле? Каков лучший вариант?
Господа, поделитесь опытом, пожалуйста, для общего блага среди начинающих. Как лучше ввсего организовать цикл в цикле для решения такой задачи: есть два вектора, необходимо сравнивать каждый элемент первого вектора со всеми элементами второго. Получается (если V_2.size()=10) один шаг внешнего цикла к 10 шагам внутреннего... Какая конструкция наиболее надежная? Спасибо за внимание!
C++ Почему нет ошибки? http://www.cyberforum.ru/cpp-beginners/thread813047.html
Добрый вечер. В MS VC++ случайно написал нечто подобное: //... int a, b, c; //... a = b; + c; и скомпилировал. Самое странное, что мне не выдалось никакого сообщения об ошибке! Как это выражение понимать и что в компе в это время происходит?
C++ Зачем нужно явно указывать тип переменной? Всем привет! Объясните зачем нужно явно указывать тип переменной? Например в С++ это обязательно, а php нет. Просто говорят что не указывать тип явно приводит к не лучшему исходу. Почему? И важно ли это "нововведение" в С++ (и подобных языках) про явное указание (в бейсике не нужно :D)? подробнее

Показать сообщение отдельно
UrbanLynx
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 29
19.03.2013, 20:20     Работа функции с переменным числом параметров
Добрый вечер!
Есть функция создающая квадратную матрицу, по числу параметров и самим элементам. Опущу все проверки и другое, не важное здесь:
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++) переходит на какой то левый адрес, где числа нет.
Что подскажете по этому поводу?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru