我使用一个 2D 字符数组,应该由 C 中的多个函数编写和读取。
这是我的数组:
static char array[3][6];
假设我有一个修改这个数组的函数'Function()'。如果函数在主文件中定义没有问题(数组被正确写入然后读取),但如果我想将我的函数放在另一个文件中,数组被正确写入但是当我在主文件中返回时神奇的空!这是我的代码。
主程序
#include "support.h"
int main(int argc, char *argv[])
{
Function();
unsigned i, j;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 6; j++)
printf("[%c]", array[i][j]);
printf("\n");
}
system("PAUSE");
return 0;
}
支持.h
static char array[3][6];
支持.c
void Function()
{
char hello[6];
hello[0] = 'H';
hello[1] = 'E';
hello[2] = 'L';
hello[3] = 'L';
hello[4] = 'O';
hello[5] = '\0';
strcpy(array[0], hello);
}
没有编译错误也没有运行时错误。再一次,如果我尝试移动 main.c 中的所有内容都可以,如果我分成两个文件它不会(数组从函数()返回后立即正确,然后它被释放),如何有可能吗?