这应该很简单,但是指向char数组的指针有时仍然让我摸不着头脑。gcc抱怨第四行和第五行“下标的值既不是数组也不是指针”,以及第八行和第十一行“一元*的无效类型参数”,有谁能解释一下这里出了什么问题吗?我更改了第4行和第5行,首先使用括号取消了对指针的引用,但仍然无法获得我想要的结果。
这应该是一个非常简单的函数:
1 void makesafestr ( const char *unsafe, const char *safe )
2 {
3 int offset=0;
4 for (; (*safe)[offset] != "\0" ; offset++) {
5 switch ((*unsafe)[offset]) {
6 case "\n":
7 case "\r":
8 *safe[offset] = "~";
9 break;
10 default:
11 *safe[offset] = *unsafe[offset];
12 }
13 offset++;
14 }
}发布于 2012-02-11 01:55:01
你不需要在safe和unsafe前面加星号。它们已经是指针了。此外,您必须使用单引号而不是双引号。单引号用于字符,双引号用于字符串。
https://stackoverflow.com/questions/9232407
复制相似问题