我需要一些关于char*
初始化和strstr
C 语言的帮助。这是一般问题:
我有一个功能func1
函数1()函数2();
问题是 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
编辑:在实际功能中添加,更改名称等。