• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

C#/c++ Ссылки

  • Автор темы Villiya
  • Дата начала
V

Villiya

доброго времени суток. подскажите пожалуста если переводить код C++ на C# (без использования unsafe) достаточно ли в конструкции вида
C++:
Calc(int NN,int LL,double *x,double **y,double **z)
C++:
double *x
заменить на out double x?

и какой аналог есть для
C++:
double** y

?

каким образом можно записать на C#
C++:
MinMaxFloat2D(double** x, int LL, int NN,double* xmn, double* xmx)
{
*xmx=x[0][0];
*xmn=x[0][0];

for(int i=0; i<LL; i++)
{
for(int j=0; j<NN; j++)
{
if(x[i][j]>*xmx) *xmx=x[i][j];
if(x[i][j]<*xmn) *xmn=x[i][j];
}
}

}

если она имеет следующий вызов
C++:
MinMaxFloat2D(x,LL,NN,&xmin,&xmax);

заранее спасибо.
 
L

LuMee

Более точным аналогом double* x, будет, я думаю, ref double x, если этот x до вызова функции уже содержит какое-то важное значение. Опять же, под этим, насколько помню, может подразумеваться массив, тогда аналогом станет double[] x.
В случае с double** y, скорее всего, имеется в виду как раз двухмерный массив - double[][] y.

Вышеприведенная функция, таким образом, превращается во что-то типа:
Код:
MinMaxFloat2D(double[][] x, int LL, int NN, out double xmn, out double xmx)
{
xmx=x[0][0];
xmn=x[0][0];

for(int i=0; i<LL; i++)
{
for(int j=0; j<NN; j++)
{
if(x[i][j] > xmx) xmx=x[i][j];
if(x[i][j] < xmn) xmn=x[i][j];
}
}
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!