微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C Char中从Pointer char获得Number

如何解决在C Char中从Pointer char获得Number

我想在指定的索引处从指针char分配char,但是malloc设置了很多指针:

char *pointer = (char*)malloc(3);
char *chars = "hello";

pointer[1]= chars[1];

char only = pointer[1];

if(only=='e')//here return false,why??
{
 printf("ok");
}

当我尝试将 only 设置为指针[1]时, only 的值变为\ 376或其他数字。 怎么了?

编辑

因此,有没有一种方法可以从 char指针[i] 获取值('e'),而不要获取ascii或其他\ 376值?

解决方法

我不想成为“那个”人,但是此代码在我的机器上可以正常工作。您正在使用哪种编译器-以及哪些选项?我尝试同时使用GCC和Clang,并且都打印“确定”。

您可以尝试将printf("ok");更改为printf("ok\n");。可能是您的终端没有打印“确定”,因为没有换行符来“刷新缓冲区”。我认为这是Windows上的常见问题。

您显示的代码似乎不是整个程序-main()函数丢失了。如果您可以将程序的其余部分添加到您的帖子中,我们可能可以帮助您更轻松地发现问题。

编辑:尝试将malloc(3)更改为calloc(3,1)。这会将内存初始化为零,而不是无用值。如果'only'变为零,我们知道问题出在指针分配而不是内存分配。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。