Мне нужна помощь с инициализацией char*
и strstr
в C. Это общая проблема:
У меня есть функция func1
func1 () func2 ();
Проблема в том, что valgrind выдает ошибку, в основном говоря, что strstr может использовать неинициализированное значение.Чтобы исправить это, мне нужно сделать что-то вроде char* str = "hello world";
, но тогда я не могу realloc
, что является проблемой.
Я проверил свою программу со случайными строками, и проблема заключается вДело в том, что valgrind рассматривает str
как неинициализированный, но я просто не знаю, как его инициализировать, не избавляясь от возможности перераспределения.Какие-либо предложения?
Ошибка:
==14356== Conditional jump or move depends on uninitialised value(s)
==14356== at 0x4C29313: strstr (in path)
==14356== by 0x401983: func2 (in path)
==14356== by 0x401B06: func1 (in path)
==14356== by 0x4013D7: main (in path)
==14356==
==14358== Syscall param execve(argv[i]) points to uninitialised byte(s)
at 0x4ECFCB7: execve (in path)
==14308== by 0x4E6A76C: do_system (in path)
==14308== by 0x4013ED: main
Отредактировано: добавлено в актуальные функции, изменены имена и тому подобное.