C 语言 jx9源码

这是jx9的一部分源代码。

其中这部分* 与&不是互相抵消了吗?取地址内的值的地址不还是原来的地址吗

这种一定程度上可以检测是否是非法指针。

可以举个例子吗?

#include <stdio.h>
typedef struct Sy Sy;
struct Sy
{
    int a;
    int b;
    int c;
};
Sy* z;
Sy* s;
void a(Sy* i)
{
    (*i).a = 7;
    z = &(*i);
    s = i;
    printf("Hello, World! %d\n");
}
int main()
{
    Sy* i;
    Sy q = {
    1,2,3
    };
    Sy w = {
    4,5,6
    };
    i = &q;
    int e = 67;
    a((Sy*)&e);
    i = &w;
    return 0;
}

我做了个mod,并没有感觉出来啊

 

可以举个例子吗?

#include <stdio.h>
typedef struct Sy Sy;
struct Sy
{
    int a;
    int b;
    int c;
};
Sy* z;
Sy* s;
void a(Sy* i)
{
    (*i).a = 7;
    z = &(*i);
    s = i;
    printf("Hello, World! %d\n");
}
int main()
{

    a((Sy*)&e);
    return 0;
}

我做了个mod,并没有感觉出来啊