c - 我的内存泄漏在哪里?

标签 c

有人可以帮我找到我的内存泄漏吗?我使用 valgrind 来检查泄漏,但我找不到它报告的泄漏。谢谢!

bigint* bi_create(const char* charint)
{

    int length = 0;
    const char* temp;
    int flag = 0;

    temp = charint;

   while(*charint != '\0')
    {

        length++;
        charint++;            
    }

    char chartoint[length];

    charint = temp;

    //printf("LENGTH = %d \n", length);

    bigint* bi = malloc(sizeof(bigint));

    bi->length = length; 

    int counter = 0;

    bi->initialzero = 0;

    while(*charint != '\0')
    {
        if(*charint == '0'  && flag != 1)
        {
            (bi->initialzero)++;
        }else
        {
            flag = 1;
        }

        chartoint[counter] = *charint;

      //  printf("CHARTOINT = %c \n", chartoint[counter]);
        charint++;
        counter++;

    }

    bi->data = atoi(chartoint);

    printf("DATA = %d \n", bi->data);
   // printf("INITIAL ZERO = %d \n", bi->initialzero);

    return bi;
}

最佳答案

该函数没有内存泄漏。但是,如果调用者没有释放该函数分配的内存,则会发生泄漏。

关于c - 我的内存泄漏在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11919792/

相关文章:

c - 高斯消除的内存管理

C编程如何在另一个头文件中打印出结构的元素?

c - Windows 何时停止发送 WM_PAINT 消息?

python - 级联库依赖

我可以在 C 中将 char* 传递给 const char* 吗?

c - 代码执行的结果会是什么? C 运算符优先级

c - 动态二维阵列打印C : why does my array only print out a single line

c - 查找字符串中字母的总数。请也查看我的代码

c - 使用 MPI 时的数组内存分配

c - 未初始化的变量