如何判断一个指针指向的地址合法?
c吧
全部回复
仅看楼主
level 1
啥的864 楼主
比如我这么写:
void* p=100;
void* p=123456;
void* p=NULL;
void* p=245;
以上的地址都是无效地址,访问会报错,我需要一个解决办法去避免这些无效地址
2022年03月22日 15点03分 1
level 1
啥的864 楼主
我曾经的一个解决方案是获取堆区地址范围,常量区起始地址,如果不在这些范围内,那一定是无效地址,效果还不错。但这样的代码量实在太多了,有没有什么更简单的办法避免这些无效地址?
2022年03月22日 15点03分 2
level 3
没啥用吧…地址都是靠写程序的人自己保证合法性的
2022年03月23日 08点03分 4
那是对自己而言,如果开发函数库给别人用就不能保证了
2023年11月21日 01点11分
level 11
void*是无类型指针,先转化为你需要的类型的指针,再去指向
2023年11月25日 03点11分 5
level 5
可以通过查手册获取合法地址,有的寄存器是可以给用户使用的
2023年11月25日 11点11分 6
level 2
跟操作系统有关,具体查看Unix编程手册,关于地址分配的部分
2023年12月04日 06点12分 7
1