AccessD Опубликовано 12 апреля, 2006 Жалоба Поделиться Опубликовано 12 апреля, 2006 Проблема с указателем на структуру. Программка, выводящая inode файла. Вариант 1: #include <sys/stat.h> main() { struct stat filest; char *path; path = "a.out"; stat(path, &filest); printf("inode = %d\n", filest.st_ino); } accessd@linux:~/src> ./test1 inode = 338656 Работает. А второй: #include <sys/stat.h> main() { struct stat *filest; char *path; path = "a.out"; stat(path, filest); printf("inode = %d\n", filest -> st_ino); } accessd@linux:~/src> ./test2 Segmentation fault нет... почему? разве это не должно приводить к одному результату? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 12 апреля, 2006 Жалоба Поделиться Опубликовано 12 апреля, 2006 AccessD писал(а) Срд, 12 Апреля 2006 21:27 Segmentation fault почему? разве это не должно приводить к одному результату? Нет. В первом случае Вы выделяете некоторый участок памяти и позволяете функции его заполнить, а во втором даете этой функции указатель в никуда Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.