我从一个简单的想法开始。
我有一个结构包含我需要在
中修改的内容typedef struct {
int stuff;
int things;
unsigned long long store;
} line;
我需要制作这些结构的二维数组,这取决于已经读入并初始化的另外两个数字。然而,当我尝试创建
时line book[X][Y];
我到处乱砍。
我知道我需要使用malloc,但无论我尝试什么,我似乎都无法做到这一点!
我如何实现目标?我真的需要帮助理解malloc,这是一个外国概念。如果有人可以帮助我,这将是惊人的。
答案 0 :(得分:0)
执行此操作的一种方法是使用双指针指向行,因为使用一个指针可以分配单个"数组"线条和双指针你可以分配一个"数组" "阵列"线条。
如果您有疑问,请参阅here。
所以,你可以为"数组"分配内存。指向行,如。
line **book = NULL;
book = malloc(sizeof(line *) * X);
有了这个,你将拥有一个"阵列"指向行的指针,然后你必须遍历书的每个元素,使每个指针指向另一个"数组",为此,我们对书的每个元素使用malloc。
for (i = 0; i < X; i++)
book[i] = malloc(sizeof(line) * Y);
另外,当你完成它们时,不要忘记释放指针。