c - 为什么程序返回访问冲突?

标签 c arrays pointers

为什么这个程序每次运行都会返回访问冲突?

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.hstring.h。有了这两个包含,您的程序对我有用(啊!好吧,还有最后一行 return 0 之后的 ;)。

关于c - 为什么程序返回访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20598312/

相关文章:

java - 文本文件中有多少个唯一单词以及这些唯一单词的计数是多少

c++ - 将指针从一种基类型转换为另一种

c++ - 指向给定内存地址的指针-C++

配置 : error: C compiler cannot create executables when installing Ruby 1. 9.3

c - 二维矩阵旋转与双线性插值

javascript - 如何在对象的对象中找到空值/未定义值

c - 将用户输入存储到两个数组时中止陷阱

c - 互斥锁总是由线程持有吗?

c++ - 关于 C++ 中全局内联函数的示例

c - c中的双分号是什么意思?