gpt4 book ai didi

Calloc 内部函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:46 25 4
gpt4 key购买 nike

查看刚刚提出的这个问题:Inconveniences of pointers to static variables那么,这样做会被视为不良做法吗?

char* strpart(char* string, int start, int count)
{
char* strtemp;
int i = 0; int j = 0;
int strL = strlen(string);

if ( count == 0 )
{
count = strL;
}

strtemp = (char*) calloc((count + 1), sizeof(char));
for ( i = start; i < (start+count); i++ )
{
strtemp[j] = string[i];
j++;
}
return strtemp;
}

抱歉,它写得很快,但基本原则是——当函数内部不使用静态缓冲区时,在函数内部分配内存是不是不好的做法?我想是因为它不会被释放,是吗?不过我想我应该问一下。

最佳答案

这不是坏习惯,但它很容易造成内存泄漏(调用者必须记住释放内存)。

我喜欢做的一件事是使用命名约定来指示可以分配哪些函数。例如,我将该函数命名为:

char* strpart_alloc(char* string, int start, int count)

关于Calloc 内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231477/

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