在下面的代码中,是否应该使用malloc()
之类的函数为指针c
分配内存?我担心递增c
可能会导致它指向另一个变量,从而在调用*c = getchar()
时覆盖它。
char *c;
int count = 0;
while( (*c=getchar()) != '\n' ){
c++;
count++;
}
发布于 2018-07-07 20:35:49
从文档中,我们可以看到getchar
的原型如下所示:
int getchar(void)
它不返回指针,所以如果你想像这样使用指针,你必须确保它指向某个东西。实际上,您的代码给出了以下警告:
warning: assignment makes pointer from integer without a cast [-Wint-conversion]
while( (c=getchar()) != '\n' ){
^
您本身不一定需要使用malloc
,但必须确保c
指向有效的地址。由于您要递增c
,因此还需要确保这些地址是有效的。
https://stackoverflow.com/questions/51223260
复制相似问题