如何解决这个问题?如果我在其他代码部分中使用该变量,为什么编译器会声明它?
void replace(char ** src, const char s, const char replace) {
while(*(*src) != '\0') {
if(* (*src) == s) {
news[size] = replace;
} else {
news[size] = *(*src);
}
*(*src) ++; // the error line
size++;
}
*src = news;
}
最佳答案
当您执行 *(*src)++
时,您基本上是在取消引用 src
,然后在指针上执行后缀增量,然后 取消引用指针。这是一个错误。您没有使用最终值,这就是编译器警告您的原因。
你真正想要的是(**src)++
;即取消引用两次然后递增。
关于c - 未使用计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9659240/