我有一个c代码,用于标记我文件的内容。我想将每个标记复制/分配给临时变量以将其放入列表中。我的temp被声明为char * temp [MAX]。 这是我的代码,但是strcpy(temp [k],token)有问题。当我运行我的代码时,它强制关闭我的程序。但是,当我删除strcpy行/语句时,它正确运行并且不强制关闭。但我的目标是将令牌复制到临时工具。有人知道为什么会这样吗?谢谢。
临时宣言具有全球性:char *temp[MAX]
;
void tokenize(FILE *input){
char *token;
int k=0;
char word[1000];
while(!feof(input)){
fgets(word,1000,input);
token = strtok(word, " \t\n");
while(token!=NULL){
printf("%s\n",token);
strcpy(temp[k], token);
k++;
token= strtok(NULL, " \t\n");
}
}
printf("%s", temp[0]);
}
答案 0 :(得分:0)
您需要先为temp分配空间,然后才能使用它。是你做的吗?
temp[k] = (char *) malloc(strlen(token)+1);
在为temp [k]指定值之前,将此行添加到代码中。