m0_50036323
m0_50036323
采纳率0%
2021-03-09 10:31

静态数组的首个值被改为零的原因可能是什么?

程序在window 10 的Visual Studio2013上编写,在VS中调试运行中不会出现此问题

在Ubuntu 16.04.1 LTS 上运行出现问题   在换平台时运行会出现此问题

“按钮”与静态数组在不在同一模块。

程序中有多个静态数组(有的数组在同一文件,有的在不同文件)

例:

static int rowcount1[2]={8,7};
static int rowcount2[2]={8,3};
static int rowcount3[2]={4,3};
/*
...
许多个静态数组
...
*/

运行程序时,点击了程序中某个“按钮”后。

会导致第一个数组的首个值变为零,且在之后无论如何操作都不会变回来,除了重启程序。

如下:

static int rowcount1[2]={0,7};
static int rowcount2[2]={8,3};
static int rowcount3[2]={4,3};
/*
...
许多个静态数组
...
*/

若是将第一个数组变为动态数组,如图

int rowcount1[2]={8,7};
static int rowcount2[2]={8,3};
static int rowcount3[2]={4,3};
/*
...
许多个静态数组
...
*/

则会在点击“按钮”后,会导致原第二个静态数组的首个值变为零:

int rowcount1[2]={8,7};
static int rowcount2[2]={0,3};
static int rowcount3[2]={4,3};
/*
...
许多个静态数组
...
*/

同理,将第二个数组也设为动态

则:点击“按钮”后会导致原第三个静态数组首个值被改为零

int rowcount1[2]={8,7};
int rowcount2[2]={8,3};
static int rowcount3[2]={0,3};
/*
...
许多个静态数组
...
*/
  • 点赞
  • 收藏
  • 复制链接分享

1条回答

  • weixin_42910064 泡视界 1月前

    那就是按钮的响应函数对这个数组设置了呀,这个数组又不是const,是可以改变的呀

    点赞 1 评论 复制链接分享

为你推荐