相关疑难解决方法(0)

C++中的静态全局变量

我想通过malloc方法创建一个整数数组.我希望这个数组是全局的,可以在我的程序中的任何地方使用.我把代码放在一个看起来像这样的头文件中:

static int *pieces;
Run Code Online (Sandbox Code Playgroud)

然后我有一个功能,用我想要的数字填充它.该函数位于命名空间中,命名空间在其自己的.cpp文件中实现.但是,我将头文件导入main.c并从创建数组的命名空间调用该函数,如:

pieces = malloc(sizeof(int) * 128);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试访问main中的数组中的数字时(在调用创建我的数组的函数之后),它崩溃并说没有初始化那些碎片.但是在我拥有的功能中,我可以创建它并操纵它中的数字就好了.我的印象是,通过使片段成为静态变量,只要某个函数在任何地方发生变化(或设置它),那么这将影响变量在任何地方的使用.基本上我想说的是为什么片断在主体中显示未设置,即使我将它设置在我调用的函数中?

c++ variables static pointers global

35
推荐指数
3
解决办法
6万
查看次数

标签 统计

c++ ×1

global ×1

pointers ×1

static ×1

variables ×1