小编jam*_*rin的帖子

指向相同地址的指针互不相同

最近,我对指针感到好奇,而且我不明白为什么以下命令不起作用。

我的想法是创建一个变量,说出它的地址(十进制),要求用户将其输入回来,并将其作为指向前一个变量的指针的地址。最后,两个变量应具有相同的值。

最后一个指针应该指向一个错误的内存地址,因为它存在段错误,但是当我打印指针的地址时,它们是相同的!

#include <iostream>

int main() {
    int temp = 0;
    printf("Temporary integer addr 0x%x (dec %d)\n", &temp, &temp);

    int input = -1;
    printf("Give me an address to read (in dec)\n");
    std::cin >> input;
    printf("You chose the number %d (hex 0x%x)\n", input, input);

    int* intPtr = (int*)input;
    int* tempPtr = &temp;

    if (intPtr == tempPtr) {
        printf("It works, they are equal!\n");
    } else {
        printf("Expected: 0x%x got 0x%x\n", tempPtr, intPtr);
        printf("Expected value: 0x%d got 0x%d", temp, *intPtr); // segfaults …
Run Code Online (Sandbox Code Playgroud)

c++

4
推荐指数
1
解决办法
214
查看次数

标签 统计

c++ ×1