私は文字列の最初のn
(n <= strlen(src)
)文字を返す関数を書いています。なぜこのコードはセグメンテーションフォルトを引き起こしますか?
char* substring(char *src, int n)
{
char *substr;
int i;
for (i = 0; i < n; i++)
*substr++ = *src++;
src = src - n;
*substr = '\0';
return substr - n;
}
この関数は、1回だけ呼び出されたときに正しい答えを返しますが、2回以上呼び出されたときにSegフォルトを返します。