小编Jea*_*nès的帖子

每次返回指针时都必须使用malloc

我正在开发一个几乎没有发现内存泄漏的程序.这段代码实际上已有几十年历史,由一个不知名的人编写.我有返回的功能,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)

c malloc pointers memory-management

-1
推荐指数
1
解决办法
183
查看次数

Java-8是否支持数组元素的产品

Java-8提供了对数组求和的流,如下所示,流是否支持product?如果蒸汽不支持,还有其他方法来计算产品而无需手动编写循环吗?

int[] a = {1, 2, 3, 4};
int sum = IntStream.of(a).sum();
Run Code Online (Sandbox Code Playgroud)

java java-8

-1
推荐指数
2
解决办法
84
查看次数

如何使用增强的 for 循环更改方法,该方法将方法调用返回到 Java 中的 Stream?

我有一个方法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)

java java-8 java-stream

-1
推荐指数
1
解决办法
56
查看次数

这是一个"无法达到的陈述"?

我正在创建一个登录页面,如果用户名和密码与数据库匹配,如果"成功登录"出现在控制台中,我希望如此.所以我只是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)

java compiler-errors unreachable-statement

-2
推荐指数
1
解决办法
79
查看次数