我目前在borland C中进行编码,我在结构解除引用方面遇到问题。current-> value = x; 给一个左值必需的错误。当“值”为char时,不会发生这种情况。反正有将x的值赋给current-> value吗?
#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;
}
简而言之,因为c不允许您复制这样的数组。您必须使用循环或使用memcpy
ot复制数组的每个元素strcpy
顺便,
int
,而不是void
malloc
。它返回一个void *
可以分配给任何其他指针类型的。fscanf
如果任何令牌的长度为16个字符或更多,则您的通话可能会发生未定义的行为本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句