Как бы я назначил символ указателю? - PullRequest
0 голосов
/ 04 октября 2019

Я делаю радикальный конвертер, и я хотел использовать связанный список, чтобы сделать это, потому что я новичок в структурах данных. Когда я присваиваю свой символ указателю, компилятор выдает ошибку «ошибка: присваивание выражению с типом массива».

struct node
{

  char bin_num[25];

  struct node *next;
};

char conversion[50] = "0123456789abcdefghijklmnopqrstuvwxyz!@#$/^&*";
typedef struct node NODE;


NODE *head = NULL;

int insert (int num){

  NODE *temp;

  temp = (NODE *) malloc (sizeof (NODE));
  temp->bin_num = conversion[num];//Need help with this line


  temp->next = NULL;

  if (head == NULL)
    {

      head = temp;

    }

  else
    {

      temp->next = head;

      head = temp;

    }

}


//This is not the entire code

1 Ответ

0 голосов
/ 04 октября 2019

Итак conversion - это char *;значение, когда индекс не используется (в пределах []), является указателем в начале массива символов.

Если temp->bin_num также равен char *, вы можете передать указатель на определенную позицию вconversion массив с использованием:

temp->bin_num = conversion + num;

Имейте в виду, что теперь у вас будет указатель на остаток массива символов. Этот указатель должен быть разыменован при использовании, например: printf("%c\n", *temp->bin_num);.

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