小编HoN*_*uRu的帖子

C++指针存在疑问

我对我在大学看到的这段代码有疑问.

struct nodeList{
  int data;
  nodeList * next;
};
typedef nodeList * List;

void filter( List &l )
{
   List * aux = &l;
   while(*aux)
   {
       if( (*aux)->data > 3 )
       {
          List toDelete = *aux;
          *aux = (*aux)->next;
          delete toDelete;
       }
       else
       {
          aux = &((*aux)->next);
       }   
   }
}
Run Code Online (Sandbox Code Playgroud)
  • 我不知道,究竟做了List * aux = &l;什么.因为ListnodeList *这样的,代码将是nodeList * * aux = &l;,而实际上我不明白,是指向一个指针的指针,该指针保存指针的地址nodeList struct

  • 我理解的第二件事是最后一行.aux = &((*aux)->next); 为什么aux没有* …

c++ struct pointers

6
推荐指数
1
解决办法
221
查看次数

指向struct的指针的Typedef等价

我得到了这个结构的实现:

struct NodoQ {
  Etype elem;
  NodoQ *sig;
};
Run Code Online (Sandbox Code Playgroud)

这个代码是下面的,

typedef NodoQ *PtrNodoQ;
PtrNodoQ ppio, fin;
Run Code Online (Sandbox Code Playgroud)

和这个一样吗?

NodoQ* ppio;
NodoQ* fin;
Run Code Online (Sandbox Code Playgroud)

c++ typedef

6
推荐指数
1
解决办法
127
查看次数

我怎么能LD_PRELOAD我自己编译的库?

我想知道它是如何工作的,创建一个库并预加载它,以便程序可以使用它而不是include语句中的那个.

这是我正在做的事情,到目前为止还没有工作.

//shared.cpp
int rand(){
    return 33;
}

//prograndom.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(){
    srand(time(NULL));
    int i = 10;
    while(i--) printf("%d\n", rand()%100);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在终端:

$ gcc -shared -fPIC shared.cpp -o libshared.so
$ gcc prograndom.cpp -o prograndom
$ export LD_PRELOAD=/home/bob/desarrollo/libshared.so
Run Code Online (Sandbox Code Playgroud)

最后

$ LD_PRELOAD=/home/bob/desarrollo/libshared.so ./prograndom
Run Code Online (Sandbox Code Playgroud)

哪个不打印33,只是随机数...

c linux gcc ld-preload

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

防止实例化和继承Java类

我被要求修改一个简单的类,以使其无法实例化和继承。我对于如何使用abstract而不被实例化以及final而不被继承感到困惑。

我应该怎么写这样的课?

提前致谢。

java inheritance instance

0
推荐指数
2
解决办法
84
查看次数

标签 统计

c++ ×2

c ×1

gcc ×1

inheritance ×1

instance ×1

java ×1

ld-preload ×1

linux ×1

pointers ×1

struct ×1

typedef ×1