相关疑难解决方法(0)

我是否施放了malloc的结果?

这个问题,有人建议意见,我应该不会投的结果malloc,即

int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

而不是:

int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?

c malloc casting

2318
推荐指数
27
解决办法
22万
查看次数

计算位数 - 哪种方法最有效?

有一种以上的解决方案可以找到给定数字中的数字位数.

例如:

方法1:

int findn(int num)
{
    char snum[100];
    sprintf(snum, "%d", num);
    return strlen(snum);
}
Run Code Online (Sandbox Code Playgroud)

方法2:

int findn(int num)
{
    if (num == 0) return 1;
    int n = 0;
    while(num) {
        num /= 10;
        n++;
    }
    return n;
}
Run Code Online (Sandbox Code Playgroud)

方法-3:

int findn(int num)
{
    /* math.h included */
    return (int) log10(num) + 1;
}
Run Code Online (Sandbox Code Playgroud)

问题是 - 什么是最有效的方法?我知道方法-2 O(n)但是方法1和方法3怎么样?如何找到库函数的运行时复杂性?

c time-complexity

21
推荐指数
4
解决办法
4万
查看次数

在标准C中将int转换为字符串

我是C的新手.

我正在寻找一个可以调用函数转换int为字符串的示例.我发现itoa但这不是标准C的一部分.

我也发现sprintf(str, "%d", aInt);但问题是我不知道所需str的大小.因此,我怎样才能为输出字符串传递正确的大小

c

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×3

casting ×1

malloc ×1

time-complexity ×1