我在通过macOS上的终端运行代码时遇到问题。该代码接收2个二进制文本文件,并对两个信号进行卷积。我首先使用>
执行代码,然后使用@echo off
rem // Store argument in variable:
set "INPUT=%~1"
if not defined INPUT exit /B
rem /* Precede with `\` and replace each `/` by `\`, so the resulting string appears to
rem be an absolute path, which can be split by `~` modifiers of `for` variables;
rem the inner `for` loop resolves the split path and removes any `\.` suffix: */
for %%I in ("\%INPUT:/=\%") do for %%J in ("%%~pI.") do set "REST=%%~pnxJ"
rem // Revert replacement of every `/` by `\` and remove the previously preceded `\`:
set "REST=%REST:\=/%"
set "REST=%REST:*/=%"
rem // If there is a string left, output it and call this script recursively:
if defined REST (
setlocal EnableDelayedExpansion
echo(!REST!
endlocal
call "%~f0" "%REST%"
)
运行代码。这样做时,我得到分段错误的错误代码:11.我知道当用该代码访问不应访问的内存时,就会发生段错误,但是我找不到发生此错误的任何地方。发生这种情况时,我的输出文件y中没有数据。如果我在Xcode而不是命令行中运行代码,则不会出现任何分段错误,并且输出文件y中将填充正确的数据。是否有任何理由在命令行中运行该程序会更改代码的行为?
gcc program.c -o execute
我希望生成的y文件是x与h卷积的结果,但是当通过命令行运行代码时,生成的y文件没有数据。当使用Xcode运行时,生成的y文件与预期的完全一样。