使用 malloc 分配的块地址
Address of the block assigned using malloc
我必须在下面的代码中使用 malloc 分配内存:
typedef struct qu_n_t {
int item;
struct qu_n_t *next;
} qu_node_t;
qu_node_t *currentblock = NULL;
qu_node_t *tmp;
currentblock = (qu_node_t *) malloc( 5 * sizeof(qu_node_t) );
tmp = currentblock++;
现在一旦代码被执行,currentblock指针将被分配到5 * sizeof(qu_node_t)
的内存地址。如果我使用 currentblock,分配给它的地址是什么?它会是使用 malloc 分配的 5 个块中的第一个块地址吗?
是的,调用malloc后,currentblock指向数组中的第一个block。
下一行之后,tmp指向第一个块,currentblock指向第二个块。
是的,这将是第一个块的地址。本质上,您分配了一个包含 5 个元素的数组 qu_n_t。因此,您可以使用 currentblock[1]
等访问第二个元素
我必须在下面的代码中使用 malloc 分配内存:
typedef struct qu_n_t {
int item;
struct qu_n_t *next;
} qu_node_t;
qu_node_t *currentblock = NULL;
qu_node_t *tmp;
currentblock = (qu_node_t *) malloc( 5 * sizeof(qu_node_t) );
tmp = currentblock++;
现在一旦代码被执行,currentblock指针将被分配到5 * sizeof(qu_node_t)
的内存地址。如果我使用 currentblock,分配给它的地址是什么?它会是使用 malloc 分配的 5 个块中的第一个块地址吗?
是的,调用malloc后,currentblock指向数组中的第一个block。
下一行之后,tmp指向第一个块,currentblock指向第二个块。
是的,这将是第一个块的地址。本质上,您分配了一个包含 5 个元素的数组 qu_n_t。因此,您可以使用 currentblock[1]
等访问第二个元素