为什么这个程序每次运行都会返回访问冲突?
void sort_lines(char *tp[], int n)
{
int sortat = 0, i;
char *temp;
while (!sortat)
{
sortat = 1;
for (i = 0; i<n-1; i++)
if (strcmp(tp[i], tp[i+1])<0)
{
temp = tp[i];
tp[i] = tp[i+1];
tp[i+1] = temp;
sortat = 0;
}
}
}
int main()
{
int i = 0;
char *sir[7] = { "mama", "mananca", "mancare", "facuta", "doar", "de", "ea" };
int m = 7;
for (i = 0; i < m; i++)
{
printf("%s\n", sir[i]);
}
sort_lines(sir, m);
for (i = 0; i < m; i++)
{
printf("%s\n", sir[i]);
}
return 0;
}
似乎如果我重新启动我的电脑,它在 11 次中有 10 次有效。这让我抓狂。我真的不明白为什么。
最佳答案
我认为您忘记了在您的程序中包含 stdio.h
和 string.h
。有了这两个包含,您的程序对我有用(啊!好吧,还有最后一行 return 0
之后的 ;
)。
关于c - 为什么程序返回访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20598312/