小编asn*_*213的帖子

使用Malloc和Free调试指针

请考虑以下代码:

#include < stdio.h >
#include < stdlib.h >
#define SIZE 10
int main() {
    int * p, i;
    p = malloc(SIZE * sizeof(int));
    if (p == NULL) {
      printf("malloc failed.\n");
      return 1;

    }
    for (i = 0; i < SIZE; i++)
      * (p + i) = i * i;

    for (i = 0; i < SIZE; i++)
      printf("%d\n", * p++);

    free(p);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码不起作用.但是我不确定为什么.我的教授给出了一个对我来说没什么意义的解释.据说这个free功能不起作用.

据我所知,你只能释放使用malloc创建的指针.在这里我们在将指针发送到空闲之前修改它,从而使我们的声明无效.

这是批评该代码的正确方法吗?

c debugging gdb

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

Rails 中定义的 db:create 在哪里?

以下命令应该创建一个新数据库。

导轨数据库:创建

这个函数在哪里定义的?或者这是 Rails 中预先打包好的函数?

ruby ruby-on-rails

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

标签 统计

c ×1

debugging ×1

gdb ×1

ruby ×1

ruby-on-rails ×1