首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络模拟器2 (NS2)中指针的声明

网络模拟器2 (NS2)中指针的声明
EN

Stack Overflow用户
提问于 2014-05-07 12:49:57
回答 1查看 177关注 0票数 0

我想在c++中声明一个指针:

代码语言:javascript
复制
class MyAgent : public Agent
{
private:
    int x,y;
    int* xPtr;
    int *yPtr;
    void add();
public:
    MyAgent(); // Declaration of constructor
};

MyAgent::MyAgent() : Agent(PT_UDP)
{
    xPtr= &x;
    yPtr= &y;
    bind("x_otcl", &x);
    bind("y_otcl", &y);

} 
void MyAgent::add()
{
    Tcl& tcl = Tcl::instance();
    tcl.eval("puts \"From add() \"");
    printf("\nx=%d and y = %d\nx+y = %d\n", x,y,x+y);
    printf("xPtr=%d\n",*xPtr);
    printf("yPtr=%d\n",*yPtr);
}

xPtr和yPtr有什么区别?xPtr是指针吗?编译器会忽略这个空间吗?从结果来看,我认为两者都是指针,但我不确定。我总是使用第二个(yPtr)来声明指针。

另外,请告诉我如何在c++和otcl之间绑定指针。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 06:16:05

xPtryPtr都是指向整数的指针。是的,编译器忽略了这个空间。

若要将oTcl变量(x和y)与C++变量(*xPtr*yPtr)绑定,请使用以下代码。

代码语言:javascript
复制
Tcl& tcl = Tcl::instance();
tcl.eval("set variable_in_tcl");
variable_in_c++ = atoi(tcl.result());

正如我所理解的,您正在调用add()函数,它将从oTcl脚本中获取变量xPtryPtr值,并打印变量的值。因此,代码如下所示:

代码语言:javascript
复制
class MyAgent : public Agent
{
private:
    // Use x and y in tcl script

    int* xPtr;

    int *yPtr;

    void add();

public:

    MyAgent(); // Declaration of constructor
};

MyAgent::MyAgent() : Agent(PT_UDP)
{
    Tcl& tcl = Tcl::instance();
    tcl.eval("set x");
    *xPtr = atoi(tcl.result());
    tcl.eval("set y");
    *yPtr = atoi(tcl.result());
}

void MyAgent::add()
{
    printf("\nx=%d and y = %d\nx+y = %d\n", *xPtr,*yPtr,*xPtr+*yPtr);

    printf("xPtr=%d\n",*xPtr);

    printf("yPtr=%d\n",*yPtr);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23518324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档