簡體   English   中英

在C代碼中使用strcpy時對字符串數組進行排序時出現分段錯誤

[英]Segmentation fault when sorting an array of strings when using strcpy in c code

我正在嘗試對字符串數組進行排序。如果我刪除行

strcpy(a[j-1],a[j]);

終端不會崩潰。

如果是問題,則以這種方式分配字符串數組

array=(char **)malloc(sizeof(char *)*N);

    for(i=0;i<N;i++)
        array[i]=(char *)malloc(sizeof(char)*6);

排序功能

void bubblesort1(char **a,int K)
{
    int i,j;
    char temp[6];

    for(i=1; i<K; i++)
        for(j=(K-1); j>=i; j--)
        {
            if(strcmp(a[j],a[j-1])>0)
            {
                strcpy(temp,a[j-1]);
                strcpy(a[j-1],a[j]);
                strcpy(a[j],temp);

            }

        }

}

我為什么會墜毀?

使用字符串時,請確保為空終止符留出一個額外的字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM