ユーザーに提供する入力文字列にRLE圧縮を行うプログラムを作成しようとしていますが、実行しようとするとセグメンテーション障害エラーが発生しますが、どこが間違っているのかわかりません...
ここに私のコードがあります:
#include <stdio.h>
#include <string.h>
char * rle_convert(char str[500]);
char str_out[500];
int main(void) {
    char str[500];
    printf("give a string : ");
    fgets (str, 500, stdin );
    strcpy(str,rle_convert(str));
    printf("%s",str);
}
char * rle_convert(char str[500]) {
    int i,j,k=0,sum;
    for (i=0; i<(strlen(str)-1); i+sum) {
            sum=1;
            for (j=i; str[j]==str[j++]; j++ ) sum++;
            if (sum>1) {
                    str_out[k]=sum+48;
                    str_out[k++]=str[i];
            }
            else str_out[k]=str[i];
            k++;
    }
    return str_out;
}