社区
C++ 语言
帖子详情
char*转int*
每天学一点!
2019-05-07 07:27:47
int main(){
char c = 65;
int *p = (int*)&c;
std::cout << (void*)&c << " " << p << std::endl; // 地址一样
*p = 5; // 运行报错
return 0;
}
p指向c的地址,为社么不能解引用?谢谢大佬解答!
...全文
395
2
打赏
收藏
char*转int*
int main(){ char c = 65; int *p = (int*)&c; std::cout << (void*)&c << " " << p << std::endl; // 地址一样 *p = 5; // 运行报错 return 0; } p指向c的地址,为社么不能解引用?谢谢大佬解答!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Al_lonely
2019-05-07
打赏
举报
回复
跑了一遍报错为:
Run-Time Check Failure #2 - Stack around the variable 'c' was corrupted。
定义c的时候,只分配了一个字节的空间,
而int占4个字节,其他三个字节没有地方放,所以会报错。
如果把char c改为double c,则程序运行正确。
其实并不是不能解引用,只是对未分配的内存空间没有写的权限,只能读,所以
cout << *p是可以被正确执行,而*p = 5是一个写的过程,所以不能被执行。
zgl7903
2019-05-07
打赏
举报
回复
应该是越界了吧, int 和char长度不一样 char c[4]={65};
char
*
转
int
char
类型数组
转
换为
int
类型,解决强制
转
换
转
换成字符码的问题的函数
C++ 中类型
转
换 xml
Char
* 与
Char
*
转
换,
Char
*与
int
转
换,
Char
*与Float
转
换,
int
与portNumBits
转
换
C++ 中类型
转
换 xml
Char
* 与
Char
*
转
换,
Char
*与
int
转
换,
Char
*与Float
转
换,
int
与portNumBits
转
换
C++实现
int
转
char
*和
char
*
转
int
#include <iostream> #include <string.h> using namespace std; /***将字符串
转
成
int
***/
int
char
2
int
(const
char
* str) { const
char
* p = str; bool neg = false;
int
res = 0; if (*str...
char
*
转
为
int
char
*numstr = "12";
int
val = atoi(numstr); 输出的结果val 是12
【C++】
int
转
char
*、
char
*
转
int
、float
转
char
*、
char
*
转
float方法汇总及踩坑指南
本博客提供C++不同数据类型
转
换的踩坑记录。
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章