首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C中使用getchar()读取输入时是否需要分配内存?

在C中使用getchar()读取输入时是否需要分配内存?
EN

Stack Overflow用户
提问于 2018-07-07 20:31:13
回答 1查看 518关注 0票数 0

在下面的代码中,是否应该使用malloc()之类的函数为指针c分配内存?我担心递增c可能会导致它指向另一个变量,从而在调用*c = getchar()时覆盖它。

代码语言:javascript
复制
char *c;
int count = 0;

while( (*c=getchar()) != '\n' ){
    c++;
    count++;
}
EN

回答 1

Stack Overflow用户

发布于 2018-07-07 20:35:49

从文档中,我们可以看到getchar的原型如下所示:

代码语言:javascript
复制
int getchar(void)

它不返回指针,所以如果你想像这样使用指针,你必须确保它指向某个东西。实际上,您的代码给出了以下警告:

代码语言:javascript
复制
warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     while( (c=getchar()) != '\n' ){
              ^

您本身不一定需要使用malloc,但必须确保c指向有效的地址。由于您要递增c,因此还需要确保这些地址是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51223260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档