関数を実行していますが、10 行目でエラーが発生します。gdb でデバッグすると、ptr が 0x0 を指していることがわかります。これは、無効な住所の場所に関する何かを指していると思います。これはなぜですか、どうすればコードを再度修正できますか。ありがとうございました
1 static char *kstrdup(const char *buf)
2 {
3 char *ptr, *ret;
4
5 ret = ptr = kmalloc(strlen(buf) + 1);
6 if ((ptr = NULL))
7 panic("kmalloc returned NULL");
8
9 for (; *buf != '\0'; ++ptr, ++buf)
10 *ptr = *buf;
11
12 *ptr = '\0';
13
14 return ret;
15 }