初学者在这里。是否可以获得缓冲区,例如:
char buffer[1024];
并使用 malloc 将其拆分为更小的内存块(随机大小取决于用户输入),直到缓冲区中没有更多空间?例如:第 1 块 = 16、第 2 块 = 256、第 3 块 = 32 等。直到达到 1024。我还想为创建的每个块创建一个结构。我正在使用普通的C。
尽管我不确定我是否能做到这一点,但我已经开始了一些事情:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int x = 0;
printf("Enter size of block to be allocated: ");
scanf("%d", &x);
/*(need to implement): call the following function until there's no more
space left in the buffer*/
allocate(x);
return 0;
}
void *allocate(size_t size)
{
char buffer[1024];
char *block;
/*The following allocates a block with the size of the user input.
How do I associate it with the buffer?*/
block = (char *) malloc(size + 1);
//Creates a structure. How do I create one for every block created?
typedef struct blk_struct
{
int data;
struct blk_struct *size_blk;
struct blk_struct *next;
}blk_struct;
blk_struct *first;
}
我做过的研究:Google 和 SO。两者都找不到任何东西。也许我没有在寻找正确的关键词?提前致谢。