相关疑难解决方法(0)

在C中释放内存时出错

我写了一个练习指针和分配内存的问题.

但是,当我释放内存时,我正在获得堆栈转储.我在正确的地方解放了吗?我的程序还有什么问题可以使它不安全吗?

void display_names(char **names_to_display, char **output);

int main(void)
{
    char *names[] = {"Luke", "John", "Peter", 0};
    char **my_names = names;
    char *new_output[1024] = {0};
    size_t i = 0;

    // Print the ordinal names
    while(*my_names)
    {
        printf("Name: %s\n", *my_names++);
    }

    my_names = names; /* Reset */
    display_names(my_names, new_output);

    // Print the updated names
    while(new_output[i])
    {
        printf("Full names: %s\n", new_output[i]);
        i++;
    }

    // Free allocated memory
    free(new_output);

    getchar();

    return 0;
}

void display_names(char **names_to_display, char **output)
{
    while(*names_to_display)
    {   
        *output = …
Run Code Online (Sandbox Code Playgroud)

c free

0
推荐指数
3
解决办法
9513
查看次数

标签 统计

c ×1

free ×1