我想使用malloc方法创建一个整数数组。我希望这个数组是全局的,并且可以在我的程序的任何地方使用。我在头文件中放置了类似于以下代码的代码:
static int *pieces;
然后我有一个函数,用于填充我想要的数字。该函数位于命名空间中,并且该命名空间在其自己的.cpp文件中实现。但是,我将头文件导入到main.c中,并从创建数组的命名空间调用函数:
pieces = malloc(sizeof(int) * 128);
当我尝试在调用创建数组的函数后,在主函数中访问数组中的数字时,它会崩溃并显示pieces未初始化。但是在我的函数中,我可以创建它并且可以很好地操作其中的数字。我原本以为通过将pieces设置为静态变量,无论何时在任何地方更改(或设置)某些函数,那么这将影响该变量的任何使用。基本上我想说的是,为什么pieces在主函数中看起来未设置,即使我在一个已经调用的函数中设置了它?
malloc
? - Oliver Charlesworth