我正在制作一个基数转换器,我想使用链表执行此操作,因为我是数据结构的新手。当我将我的字符分配给指针时,编译器会给出“错误:分配给具有数组类型的表达式”错误。
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
最佳答案
所以conversion
是char *
;不使用索引(在[]
内)时的值是字符数组开头的指针。
如果temp->bin_num
也是char *
,则可以使用以下方法将指向特定位置的指针传递到conversion
数组中:
temp->bin_num = conversion + num;
请注意,尽管现在您将拥有一个指向字符数组其余部分的指针。该指针将在使用时被取消引用,例如:
printf("%c\n", *temp->bin_num);
。关于c - 如何将字符分配给指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58239293/