Gặp lỗi Segmentation fault khi code sinh hoán vị của chuỗi

c

(Harry Stormborn) #1

Chào m.n, mình đang làm 1 bài tập sinh hoán vị, nhập vào n chuỗi sau đó sắp xếp và in ra hoán vị của các chuỗi nhập vào.

int next_permutation(int n, char **s)
{ 
    int i = n-1;
    while(strcmp(s[i],s[i-1])<0){   
            i--;
    }
    if(i<=0) return 0;
    if(i>0){
        int k;  
        for(k = n-1;k>=0;k--)
        {
            if(strcmp(s[k],s[i-1])>0) break;
        }
        swapstr(s[k],s[i-1]);
        for(int k = i;k<n;k++){
            for(int p = k+1;p<n;p++)
                if(strcmp(s[k],s[p])>0) swapstr(s[k],s[p]);
        }
    }      
      return 1;

Mình code hàm này nó báo segmentation fault @@ mà vẫn chưa biết nó lỗi đoàn nào -_-. Cao nhân nào soi hộ mình với. Mình c.ơn


(rogp10) #2

Dùng deep copy là tiêu vì kích thước đâu có giống nhau :smiley:


(Harry Stormborn) #3

Copy chỗ nào nhỉ?-_-. Ý mình chỉ so sánh 2 chuỗi để tìm chuỗi lớn hơn r thực hiện đúng logic như trong thuật toán thôi . :((


(rogp10) #4

Vấn đề nằm trong swapstr đấy.


(Harry Stormborn) #5

À đúng r mình hiểu r. Tks nhé @@ :))


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?