を文字列に私は、文字列へのポインタの配列を持っている:Cのcharのqsortのポインタの配列で
char *TAB[3] = { "dafafa", "alfkasf", "bafgr" };
私はこれらの文字列のそれぞれでの文字を並べ替えしたいと思います。プログラムが動作しません
qsort(TAB[0], 6, sizeof(char), cmp);
:
int cmp(const void *a, const void *b)
{
return *(char *)a - *(char *)b;
}
及びこれらのいずれかのqsortをしようとしているとき:
コンペア機能マイ。 多くの努力の結果、この問題の理由はTAB[0]
をqsort()
に届けていることがわかりました。
誰もそれがうまくいかない理由とそれを修正する方法を説明できますか?
Cのリテラル文字列は*読み込み専用*です。それらを変更しようとすると、[*未定義の動作*](https://en.wikipedia.org/wiki/Undefined_behavior)につながります。 –
"文字列ごとに文字を並べ替えたい - >と、ソートされた文字列をどこに置きたいのですか?ソース文字列への書き込み、_stringリテラル_は_undefined behavior_ですか? – chux