Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Чёто я запутался, подскажите кто знает.
Создал структуру, заполнил её данными, создал массив структур.
Как теперь передать в функцию массив но только на один елемент структуры ??????????????
Предложение разработчикам, если возможно былоб хорошо совершать стандартные операции со структурами
не вот так:
а вот так:
копирование структур есть осталось дело за малым.Чёто я запутался, подскажите кто знает.
Создал структуру, заполнил её данными, создал массив структур.
Как теперь передать в функцию массив но только на один елемент структуры ??????????????
Никак. Да и незачем.
Потому что - кто мешает в функции суммирования именно тот элемент и суммировать?
Вот и код подправлен до "кошерного":
Только что-то типа ArraySize() в реальности надо употребить, а не 10 в цикле for внутри функции OnStr(). И вместо y в "sum+=x[i].y" реальное поле данных, определённое в структуре, суммировать (a или b, например).
Предложение разработчикам, если возможно былоб хорошо совершать стандартные операции со структурами
не вот так:
а вот так:
копирование структур есть осталось дело за малым.В C++ такое есть. Называется "operator overloading". Как должно работать, - задаёт программист с помощью соответствующей функции.
Однако, сей feature'е Renat сказал "нет". Не повезло, да?
Никак. Да и незачем.
Потому что - кто мешает в функции суммирования именно тот элемент и суммировать?
Вот и код подправлен до "кошерного":
Только что-то типа ArraySize() в реальности надо употребить, а не 10 в цикле for внутри функции OnStr(). И вместо y в "sum+=x[i].y" реальное поле данных, определённое в структуре, суммировать (a или b, например).
Как всегда когда привожу примеры суть улетела, но я не удивляюсь всему виной наверно моё костноязычье.
А суть такова написать функцию среднеарифметического а потом просто передав в эту функцию массив структур получить структуру среднеарифметических по каждому из членов структуры.
Пример привёл для простоты но наверно неудачный. Но в принципе спасибо за разьяснения.
Видимо действительно нужно долбить разработчиков чтоб разрешили "operator overloading".
Нда пришлось писать кучу методов на то чтоб просто сложить, умножить, разделить, две структуры,
самое паскудное что на другие структуры прийдётся всё это писать по новой.
PS так мало того методы отдают тип структуры те в ретурне такаяже структура которыми оперируем так вот вложеный вызов не проходит ???
результат сначало нужно сохранить во временную структуру а потом уже её передать на последующую обработку ?? не ясно зачем так сделано.
PPS хотя все параметры стоят const те возможности что будет изменение несуществующей переменной нет.
PPPS а сори структуры то передаються по ссылке, как можно ссылаться на несуществующую структуру(видимо пора отдыхать).
Чёто я запутался, подскажите кто знает.
Создал структуру, заполнил её данными, создал массив структур.
Как теперь передать в функцию массив но только на один елемент структуры ??????????????
Никак. Да и незачем.
Потому что - кто мешает в функции суммирования именно тот элемент и суммировать?
Вот и код подправлен до "кошерного":
Только что-то типа ArraySize() в реальности надо употребить, а не 10 в цикле for внутри функции OnStr(). И вместо y в "sum+=x[i].y" реальное поле данных, определённое в структуре, суммировать (a или b, например).
Есть два варианта (насколько я понимаю):
1. Передать массив сам массив, указав дополнительным параметрам индекс записи с которым будем работать.
В этом случая необходим контроль выхода за пределы размерности массива, а объявление функции будет выглядеть как-то так...
2. Передаем второстепенный массив с размерностью в одну запись, соответственно вся работа по контролю и обработке результата функции проводится в точке вызова функции.
Объявление функции тогда будет выглядеть примерно так...
Ошибочное замечание "possible loss of data due to type conversion"? (Build: 305)
Необходимо явное приведение результата к типу int.
PS
Рабочий пример можно посмотреть тут - OrderSend()
Но как я понимаю на данное предупреждение в принципе можно закрыть глаза...
Если в return много скобок - он начинает путаться!?
Вот, к примеру функция, которая возвращает число из строки типа "klsfd Step 2.":
Чем она отличается от этой?
Во втором варианте возникнут проблемы при компиляции, а в первом - нет.