我想保存一个函数的输入并在多个调用中对其进行操作。但是,如果我执行以下操作......
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 || toString == NULL )
{
toChange = toString;
counter = 0;
}
toChange[counter] = 'A';
printf("String is being corrupted... %s\n", toChange);
counter++;
return 0;
关于C 函数输入的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58421537/