[英]Casting cost addressing pointer in c from unsigned char * to const char *?
[英]Casting a pointer from a char in C
如果我有一个在c中返回(char)
的函数,并且我有一个(char* getSomething)
该如何转换呢? 当我尝试通过(char*)
或(char*)&
(char*)
时,这给我一个错误
示例:如果函数是:
char* getSomething;
getSomething = getSth(var);
getSth返回一个字符
您不能在指针中存储值。 指针指向存储数据的内存地址,因此您必须首先将返回的字符存储到存储位置(字符变量或malloc的区域),然后可以由getSomething指向该位置。
char *getSomething;
char something;
something = getSth(var);
getSomething = &something;
或者您可以使用指针直接访问内存位置
char something;
char *getSomething = &something;
*getSomething = getSth(var);
最后,您可以使用malloc返回指向的内存区域,然后将返回的值存储在此内存位置。 只要确保在函数退出之前释放该内存即可。
char *getSomething = malloc(sizeof(char));
*getSomething = getSth(var);
free(getSomething);
*getSomething = getSth(var);
基本上说“将char放置在getSomething指向的位置...”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.