iphone bus error的原因

本文介绍了一个会导致总线错误的C/C++程序示例,该示例通过修改指针使其指向非法内存区域,尝试访问该区域时会触发错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

访问了非法指针。

 

The bus in question is the address buss and it contains an illegal value. This is almost always the result of dereferencing a pointer that contains an illegal value.

Here is a program that, I think, will compile with every C or C++ compiler, but should cause a bus error when the second printf is attempted...

Code:
#ifdef __STDC__
#define PROTOTYPICAL
#endif
#ifdef __cplusplus
#define PROTOTYPICAL
#endif

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#ifdef PROTOTYPICAL
int main(int argc, char *argv[])
#else
main(argc,argv)
char *argv[];
#endif
{
      double d = 1.23456789;
      double *p = &d;
      printf ( " d = %f /n" , *p);
      p = (double *)((char *)p + 1);
      printf ( " d = %f /n" , *p);
      exit(0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值