繁体   English   中英

从C中的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM