相关疑难解决方法(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万
查看次数

什么时候小心使用free()来释放malloc()用过的内存?

我在这里读了许多问题,其中一些关于c中free()函数的文章释放了未使用变量的内存.在我的情况下,我有以下代码块.

char *injectStrAt(char *str, char *strToIn, int pos)
{
    char *strC = malloc(strlen(str) + strlen(strToIn) + 1);
    strncpy(strC, str, pos);
    strC[pos] = '\0';
    strcat(strC, strToIn);
    strcat(strC, str + pos);
    return strC;
}
Run Code Online (Sandbox Code Playgroud)

我用上面的函数将一个字符串块注入一个数组.我正在malloc用来创造一个新的char*.在上述情况下我需要做free(strC)什么?建议请.

c malloc free

5
推荐指数
1
解决办法
422
查看次数

标签 统计

c ×2

malloc ×2

casting ×1

free ×1