C список указателей (двойные указатели) - PullRequest
1 голос
/ 22 февраля 2012

Я пытаюсь составить список указателей на структуру под названием «поток».Вот моя попытка:

//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; 

Где я думаю proccess0[i] - это конкретный список указателей потоков, а process0[i][j] - это конкретный указатель потока из определенного списка указателей потока ... ТогдаЯ бы хотел получить доступ к одному из его членов через оператора ->.

Я всегда сосал арифметику с указателями и хотел бы прояснить ситуацию.Большое спасибо.

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Тип данных, который вам нужен, это «указатель на структуру потока», или:

struct thread **process0 = kmalloc(sizeof(struct thread *));
0 голосов
/ 22 февраля 2012
struct thread **process0 = kmalloc(sizeof(struct * thread)*NUM_THREADS*NUM_PROCESSES_IN_EACH_THREAD); //kmalloc is my malloc, don't worry

Раньше вы выделяли только один указатель, если я правильно понял.Помогает ли это вообще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...