指向长整型的空指针

  • 本文关键字:空指针 长整型 c
  • 更新时间 :
  • 英文 :


我正在研究 pthread 库,我有一个疑问。我希望你能帮助我。

我有一个无效 * 声明为:

void* threadid;

线程 ID是包含长整型值的指针。 我的教授告诉我们,如果我想要原始的长值,我可以这样做(假设我们在传递给线程的函数中(

long tid;
tid=(long)threadid;

但是,对我来说,threadid应该在应用强制转换之前取消引用,因为它是一个指针。我错了吗?

但是,对我来说,threadid 应该在应用强制转换之前取消引用?不。由于void 指针没有像int/char/float这样的类型,所以你不能直接取消引用它,首先你需要像(long*)threadid一样进行类型转换,然后像*(long*)threadid一样取消引用它。

它应该是

long tid;
tid = *(long*)threadid; /* valid, it should be long* bcz threadid is pointer */

低于一个是无效的

tid = (long*)*threadid; /* in-valid bcz threadid is  void pointer &
void pointer need to cast first and then dereference  */

最新更新