我对此lines[k] = lines[k+1];
这是我尝试做的事情:
char lines[MAXLINES][BUFSIZ];
for(k = 0;k < i;k++){
char * tmp = lines[k];
lines[k] = lines[k+1];
lines[k+1] = tmp;
change = 1;
}
任何人都可以帮我吗?我只想在数组中用行[k + 1]交换行[k] ......
答案 0 :(得分:3)
您无法分配数组,需要strcpy()
char lines[MAXLINES][BUFSIZ]
for (int k = 0 ; k < i ; ++k)
{
char tmp[BUFSIZ];
strcpy(tmp, lines[k]);
strcpy(lines[k], lines[k + 1]);
strcpy(lines[k + 1], tmp);
change = 1;
}
由于lines[k]
是一个数组,您无法分配它,但您可以将lines[k]
的内容复制到临时缓冲区,然后将lines[1 + k]
的内容复制到lines[k]
并最终将tmp
的内容复制到lines[1 + k]
。