社区
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的地址,为社么不能解引用?谢谢大佬解答!
...全文
417
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
作业
写回复
配置赞助广告
用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
*numstr = "12";
int
val = atoi(numstr); 输出的结果val 是12
C++中
int
与
char
*、
int
与Byte、double与
char
*的相互装换
在我做课题的时候发现,在C#中
int
与
char
*、
int
与Byte、double与
char
*的相互装换,都可以采用系统封装好的函数。 但是,不是我想要的结果,和自己调用,不是很适合我自己,于是自己用C++写了函数,生成dll文件,在C#...
c++
char
*
转
int
double
正负皆可
转
;靠自己勤劳的双手与智慧...上代码,可以
转
载。有好的逻辑请留言,万般感谢! double sqrt(double sum,
int
i) { double root = sum; while (i>0,i--) sum *= root; return sum; } double ...
数据类型
转
换之
char
* 与
int
把
int
类型数字
转
成
char
*类型,可以使用itoa函数 函数原型:
char
*itoa(
int
value,
char
*string,
int
radix);
int
value 被
转
换的整数
char
*string
转
换后储存的字符数组
int
radix
转
换进制数,如2,8,10,16 进制等 ...
C Primer Plus 中的
char
*s_gets(
char
*st,
int
n)语句的理解
char
*s_gets(
char
*st,
int
n); //类似fgets,区别是fgets读取\n,他不读取
char
*s_gets(
char
*st,
int
n) {
char
*ret_val;
char
* find; ret_val = fgets(st,n,stdin); //表示从标准输入流中读取n-1个元素到...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章