Jestem studentem drugiego roku cs, nadal nie jest tak biegły w programowaniu, jak chciałbym być. Pracujemy z OS161 w C w tym roku.Segmentacja na vprintf.c
Na problem, mam napisać program w języku C, który może przyjąć polecenia jak argumenty i wywołać je ponownie. Ok, nie ma problemu. Robiłem to wcześniej w innych językach. Oto kod, który próbowałem:
Kompiluje się dobrze z gcc, ale kiedy go uruchomię, otrzymuję błąd segmentacji. I uruchomić go z gdb, i to, co mam:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7abc493 in _IO_vfprintf_internal (s=0x7ffff7dd97a0, format=<value optimized out>,
ap=0x7fffffffe3f0) at vfprintf.c:1623
1623 vfprintf.c: No such file or directory.
in vfprintf.c
Kiedy zakomentuj printf, to działa, ale oczywiście to nie zrobi to, czego potrzebuję go. O ile mogę powiedzieć, to instrukcje printf są problemem, ale dlaczego? Sprawdziłem to i zawarłem prawy nagłówek. Trudno mi sobie wyobrazić, że coś jest nie tak z vfprintf.c, ponieważ to wszystko ma miejsce w mojej wirtualnej maszynie, do której się włączyłem. Gdyby ktoś mógł rzucić mi kość, naprawdę bym to docenił. Dzięki!
Edytuj, jak widzisz, mam nieprawidłowy specyfikator konwersji. To był cały problem.
Moja gcc daje mi ostrzeżenie na linii naruszającego. Czy twój nie jest? Co się stanie, jeśli włączysz '-Wall'? –
@Nate Eldredge Nie otrzymałem żadnych ostrzeżeń. Nie byłem zaznajomiony z - Wall, zdecydowanie wykorzystam to w przyszłości, dzięki. –