gpt4 book ai didi

c# - c++代码(malloc方法)到c#代码

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:38 35 4
gpt4 key购买 nike

我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示?

int monate = ee;
double *forward;
double *backward;
size_t bytes = 6*sizeof(double);
forward = (double *)malloc(monate * bytes);
backward = (double *)malloc(monate * bytes);

for (int i = 0; i <= monate; i++) {
forward[i] = 0.;
backward[i] = rate;
}

forward[0] = auszahlungsbetrag;
backward[0] = 0.;
backward[monate] = rate + rest;

double ez = esolver(12 , monate, forward, backward);
printf("Effektivzins: %.2f\n", ez);

char tmp0[256];
sprintf (tmp0, "Rate: %.2f (%f)" , rate, rate);
writeToLogFile(tmp0);

char tmp[256];
sprintf (tmp, "Effektivzins: %.2f (%f)" , ez, ez);
writeToLogFile(tmp);

free(forward);
free(backward);

这是我转换后的 C# 代码。对于 malloc、free 和 sprintf 方法,我在将其转换为 C# 时遇到了一些麻烦。


使用系统;



命名空间 Zinsrechner
{
公共(public)静态类基本
{

public static void basic(double aa, double auszahlungsbetrag, double cc, int ee, double rest)
{

Writelog.writeToLogFile("开始学习,输入 BASIC");
Writelog.writeToLogFileDouble("Kreditvolumen: ", aa);
Writelog.writeToLogFileDouble("Auszahlungsbetrag: ", auszahlungsbetrag);
Writelog.writeToLogFileDouble("Nominalzins:", cc);
Writelog.writeToLogFileInt("延迟时间:", ee);
Writelog.writeToLogFileDouble("休息时间:", 休息);

/////////

//评级

双名 = (cc/12.0/100.0) + 1.0;
双元 = 0.0;

对于 (int x = 0 ; x <= ee-1 ; x++)
{
unten = unten + Math.Pow(nomzins,x);
}

双倍比率 = ((aa * Math.Pow(nomzins, ee)) - rest)/unten;
Console.Write("速率: {0:f2}\n", 速率);

int monate = ee;
双 [] 向前;
双[]向后;
uint bytes = 6 * sizeof(double);
//C++ 到 C# 转换器 TODO 任务:内存管理函数“malloc”在 C# 中没有等效项:
//forward = (double)malloc(monate * bytes);
forward = (double)(monate * bytes);
//C++ 到 C# 转换器 TODO 任务:内存管理函数“malloc”在 C# 中没有等效项:
backward = (double)malloc(monate * bytes);

for (int i = 0; i <= monate; i++)
{
前向[i] = 0.0;
向后 [i] = 速率;
}

前向[0] = auszahlungsbetrag;
向后[0] = 0.0;
向后 [monate] = 速率 + 休息;

double ez = Effektivzinssolver.esolver(12, monate, forward, backward);
Console.Write("Effektivzins: {0:f2}\n", ez);

字符串 tmp0 = 新字符串(新字符 [256]);
tmp0 = string.Format("速率:{0:f2} ({1:f})", 速率, 速率);
Writelog.writeToLogFile(tmp0);

字符串 tmp = 新字符串(新字符 [256]);
tmp = string.Format("Effektivzins: {0:f2} ({1:f})", ez, ez);
Writelog.writeToLogFile(tmp);

//C++ 到 C# 转换器 TODO 任务:内存管理函数“free”在 C# 中没有等效项:
免费(转发);
//C++ 到 C# 转换器 TODO 任务:内存管理函数“free”在 C# 中没有等效项:
免费(向后);


}
}
}

最佳答案

malloc 和 free 的等价物是:

IntPtr memory = Marshal.AllocHGlobal(100); //malloc
Marshal.FreeHGlobal(memory); //free

关于c# - c++代码(malloc方法)到c#代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946463/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com