c - 如何返回字符指针?
问题描述
我是 C 新手。我正在尝试返回一个字符指针>>指向单个字符值的指针。我知道我可以简单地返回一个字符,但我想学习如何返回一个指向单个字符值的字符指针。
char * returnPointerToCharacter(){
char s = 's';
char * pointerToS = &s;
return pointerToS;
}
int main()
{
// This code below works
char h = 'h';
char * pointerToH = &h;
printf("%c \n", *pointerToH);
// This code below doesn't work
char * pointerToS = returnPointerToCharacter();
printf("%c \n", *pointerToS);
return 0;
}
解决方案
问题是 char s 在堆栈上,并从堆栈中弹出,所以你返回一个指向被破坏元素的指针。
如果您只想要一个返回 char 指针的函数,您可以尝试一些简单的方法:
char * returnPointerToCharacter(char *s){
return s;
}
...// Do stuff
char f;
char * pointerToS = returnPointerToCharacter(&f);
推荐阅读
- android - AndroidX 数据存储 - AES/CBC/PKCS7 - javax.crypto.IllegalBlockSizeException
- c++ - 在类型中注释变量的链接器部分 - 嵌入式 C++ 的静态内存管理问题
- java - Java 使用 jackson 将 JSON 与 POJO 映射
- mapping - TypeError: undefined is not an object (evalating 'nod.images.fluid') --
- javascript - Vuejs 3 在 VueX 中使用 globalProperties
- flutter - 如何使用提供程序在应用程序启动时加载状态
- javascript - 根据屏幕大小显示不同的视频源
- javascript - Javascript:使用 groupBy 将对象列表转换为嵌套对象列表
- python - OpenCv人脸识别app检测问题
- c# - 将 SIP2(标准交换协议)请求转换为 Web API 请求并将 Web API 响应转换为 SIP2 响应