我正在开发一个几乎没有发现内存泄漏的程序.这段代码实际上已有几十年历史,由一个不知名的人编写.我有返回的功能,char *我想知道我是否需要free内存.
具体来说,我有一个替换字符串中的子字符串的函数,我将指针返回到新malloc编辑的内存.我free是原始的字符串吗?
原始版本:
return(findAndReplace(str, "•",rstring));
Run Code Online (Sandbox Code Playgroud)
新版本:
char *result = findAndReplace(str, "•", rstring);
free(str);
return result;
Run Code Online (Sandbox Code Playgroud)
问题是:我可以100%确定,因为我从其他地方返回的指针已经分配了内存吗?释放内存是否安全(假设它没有在其他任何地方使用)?
编辑:str来自这里:
str = axiom_element_get_text(element, env, messageDataNode);
Run Code Online (Sandbox Code Playgroud) Java-8提供了对数组求和的流,如下所示,流是否支持product?如果蒸汽不支持,还有其他方法来计算产品而无需手动编写循环吗?
int[] a = {1, 2, 3, 4};
int sum = IntStream.of(a).sum();
Run Code Online (Sandbox Code Playgroud) 我有一个方法getBalance,其中我有一个增强的 for 循环,并在我返回的循环内customer.getBalance();
我现在想将该方法更改为 Java 8 中的 Stream,但我不知道该怎么做,因为您无法在流中返回某些内容。
方法:
public double getBalance(String personalNumber, int accountNumber) {
for (Customer customer : customers) {
if (customer.getPersonalNumber().equals(personalNumber)) {
return customer.getBalance(accountNumber);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个登录页面,如果用户名和密码与数据库匹配,如果"成功登录"出现在控制台中,我希望如此.所以我只是System.out.println();在if语句中添加了一个,但它得到错误"无法访问的语句".这是为什么?这是循环:
if (user.equalsIgnoreCase(userFromDB) && hashedPass.equals(passFromDB)) {
return "Correct username and password!";
System.out.println("Login successfull using username \"" + user + "\"");
}
Run Code Online (Sandbox Code Playgroud)