我目前正在编程borland C,并且我在解构结构方面遇到了问题。 当前 - >值= x;正在给出一个左值需要的错误。当“value”是char时,不会发生这种情况。无论如何要将x的值赋给current-> value?C结构解引用需要Lvalue
#include<stdio.h>
#include<conio.h>
char x[16];
FILE *fin;
struct node {
char value[16];
struct node *next,*prev;
};
struct node *current;
void main(){
fin = fopen("tokens.ctr","r");
current = (struct node*) malloc(sizeof(struct node));
fscanf(fin,"%s",&x);
current->value = x;
}
'电流 - >值= X; 'current-> value是一个数组。你不能*分配给数组。您只能复制元素,或使用strcpy()或memcpy()。另外:'conio.h>'是一个非标准的头文件,'main()'应该返回int,而不是void。 – wildplasser 2014-09-03 10:04:23
使用'strcpy',而不是赋值。还要注意''current'是一个野指针。 – 2014-09-03 10:04:51
您不能像这样为数组赋值,可以使用'for'循环来分别赋值或使用'memcpy'。 – 2014-09-03 10:05:09