![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.03.2009
Сообщений: 5
|
![]()
Доброго времени суток!
В книге "Технологии параллельного программирования" Лупин С.А. Есть простой пример на С программы выводящей строку и он компилируется и работает, но если переписать его на С++ компилятор выдает ошибку о некорректных аргументах передаваемых функции Init. Пример из книги на С : Код:
API C++ http://www.open-mpi.org/doc/v1.6/man3/ #include <iostream> Код:
Компиляция производится с помощью mpic++ v 1.6 ОС Linux Запуск приложения через mpirun Не могу предоставить пример ошибки из-за недоступности ПК. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]()
Вот как вот это &argv из С вдруг стало **&argv в С++? Какой логикой вы руководствовались?
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 31.03.2009
Сообщений: 5
|
![]()
Логика примерно такая:
Во-первых апи где указан второй аргумент функции как **&argv. Тут я запутался так как на той же странице для С указан второй аргумент как ***argv ему можно присвоить значение &argv значит в С++ варианте правомерно присвоить второму аргументу значение &*argv. Не до конца понимаю механизм работы указателей и ссылок... |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
еще раз:
Код:
Код:
(указатели и в С и в С++ одинаковые как бы) Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]() Цитата:
Может вы просто не в курсе про операции разыменования и взятия адреса? И не понимаете, что &*argv != &argv... хотя тут даже по значка видно, что не похоже. Странно... Цитата:
Последний раз редактировалось p51x; 07.04.2014 в 13:27. |
||
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а просто в неймспейсе.
тогда вообще не понимаю логики. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 31.03.2009
Сообщений: 5
|
![]()
В моих действиях логики мало :D
Разобрался корректным будет такой вариант Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#8 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Цитата:
Код:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
![]() Код:
|
![]() |
![]() |
![]() |
#10 | |
Регистрация: 31.03.2009
Сообщений: 5
|
![]() Цитата:
Спасибо всем за терпение и ответы. ![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо переделать программу из MPI в OpenMP | MrViperTNU | Помощь студентам | 0 | 04.04.2012 16:09 |
Распараллеливание кусочка кода на Си (MPI && openMP) | Quew | Общие вопросы C/C++ | 0 | 02.02.2012 19:38 |
Задача на С++ с аргументами | Sofa | Помощь студентам | 1 | 22.12.2011 22:13 |
Помогите с MPI, плз! | kbbudanov | Общие вопросы C/C++ | 1 | 25.11.2009 17:53 |
Параллельная программа для метода холецкого с помощью openMp и mpi | игоревна | Помощь студентам | 0 | 06.06.2009 20:47 |