客户的代码希望在"通常可疑"位置之一找到包含文件malloc.h
。 在我的Mac上,AFAICT,没有malloc.h
,至少在您希望找到它的任何地方都没有,例如/usr/include
,/usr/local/include
或/opt/local/include
。 由于malloc()
通常是在 stdlib.h
中定义的,并且由于代码无论如何都包含 stdlib.h,因此我能够通过注释掉malloc.h
的几个包含来构建代码。 我正在用gcc
建造.
但是两个问题:我的 gcc 是否以某种方式搞砸了? 该文件应该在那里吗? 此外,代码几乎立即出现我尚未追踪到的 seg 错误。 这可能是使用错误malloc()
的后果吗?
malloc.h
已弃用,不应使用。它还包含一些非标准功能。如果要使用 malloc
,请包括 stdlib.h
。甚至C89标准都没有提到malloc.h
如果这是你问题的原因,我不知道,但很有可能。
下面的列表可以提供有关应该/可以在何处找到文件的想法。 不过,如果没有更多细节,我无法解释段错误。 我不明白它如何以任何方式与 malloc(( 相关。
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/malloc.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs/WatchSimulator.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk/usr/include/malloc/malloc.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/malloc/malloc.h
$