-2

我对以下代码有疑问。

int main(){
   char* cptr = new char[100];
   *cptr[1] = 'A';
 }

当我在 Visual C++ 2010 中编译它时它给了我错误:“'*' 的操作数必须是一个指针”。但是 cptr 是指针。

4

2 回答 2

6

是的,但cptr[1]不是 - 它是一个char. 那就是你申请*的。

*cptr[1] == 
*  (cptr[1]) 
      | 
 this is a char

你可以写

char cptr[] = "A";

或使用std::string.

于 2013-09-08T16:38:15.830 回答
0
int main(){
       char* cptr = new char[100];
       cptr[1] = 'A';
     }

这是实现它的正确方式。

于 2013-09-08T17:51:35.113 回答