我想保存一个函数的输入,并在多个调用之间操作它。但是,如果我做以下的事…
int testFunc(char *toString) {
static char *toChange = toString;
static int counter = 0;
toChange[counter] = 'A';
printf("String is being corrupted... %s\n", toChange);
counter++;
return 0;
}
我得到一个错误,说输入
toChange
不能设置为非静态变量。我一直在想如何避开这个问题,但我找不到任何答案。 最佳答案
静态变量应通过常量表达式初始化。
写些类似的东西
int testFunc(char *toString) {
static char *toChange;
static int counter;
if ( toChange == NULL )
{
toChange = toString;
counter = 0;
}
toChange[counter] = 'A';
printf("String is being corrupted... %s\n", toChange);
counter++;
return 0;
}