将字符串复制到2D字符串数组中

时间:2015-11-29 10:47:51

标签: c string strcpy

我有一个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]);
}

1 个答案:

答案 0 :(得分:0)

您需要先为temp分配空间,然后才能使用它。是你做的吗?

temp[k] = (char *) malloc(strlen(token)+1);

在为temp [k]指定值之前,将此行添加到代码中。