0

我有以下代码:

typedef struct{
int A; 
char* B;
}MYTYPE;

MYTYPE sample;
int nCount; 

void doSomething(int A, MYTYPE* B)
{
//doing something inside this function.
}

doSomething(nCount, &sample);

我的函数 doSomething() 中有没有办法检查传递的第二个参数是否准确sample

4

2 回答 2

3

是的,您可以简单地比较地址。

请记住,指向某事物的指针实际上是该事物的地址。所以你可以这样做:

void doSomething(int A, MYTYPE* B)
{
    if (B == &sample)
    {
        printf("B is sample\n";
    }
}
于 2013-02-04T10:39:26.973 回答
0

是的:

if(B == &sample)
{
  printf("Get your own, don't use sample!\n");
}

请注意,您的电话是错误的,您需要:

doSomething(nCount, &sample);
                    ^
                    |
               IMPORTANT!

由于该函数需要一个地址。正如问题中所写,它不会构建。

于 2013-02-04T10:39:33.080 回答