我正在尝试制作一个指向名为“线程”的结构的指针列表。这是我的尝试:
//kmalloc is my malloc, don't worry
struct thread **process0 = kmalloc(sizeof(struct *thread));
//^ 这一行给我一个解析错误
基本上我希望 process0[0]
成为一个线程指针,
process0[1]
是指向另一个线程的指针,
process0[2]
是指向另一个线程的指针,
等等
稍后我可能想访问线程的“addrspace”成员之一(指向 addrspace
结构的指针):
struct addrspace *test = process0[i][j]->addrspace;
我在想 process0[i]
是一个特定的线程指针列表,而 process0[i][j]
是来自特定线程的特定线程指针线程指针列表...然后我想通过 ->
运算符访问其成员之一。
我一直很讨厌指针运算,希望把事情搞清楚。非常感谢。
最佳答案
您想要的数据类型是“指向结构线程的指针”,或者:
struct thread **process0 = kmalloc(sizeof(struct thread *));
关于C 指针列表(双指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9385018/