如何比较固定大小的char数组中的两个内存地址?可以说我有两个指针,每个指向数组在不同的存储位置:比较内存地址
char *ptr1; //points to a memory address in the array;
char *ptr2; //points to another memory address in the array;
如果我这样做printf("%p\n%p\n", ptr1, ptr2);
然后将打印内存地址为十六进制。
output:
0x601240
0x601274
我如何将存储到这些变量,它们是可比的,这样我可以告诉它的内存地址是第一位在数组中。
另一个问题: 如果我做的%d打印内存地址,我收到%P代替:
output:
6296128
6296180
是这些有效的内存地址,以及(我的意思是这样的安全使用)?
如果我知道内存地址停在0x700000(为了争辩),我想检查指针是否指向允许的范围之外? 'if(ptr1> 0x700000)返回-1;'有效? – mfloris