分段故障,can';我不明白为什么

分段故障,can';我不明白为什么,c,arrays,random,segmentation-fault,C,Arrays,Random,Segmentation Fault,删除错误 我完全被这个打败了。有什么帮助吗?这段代码对我来说没有任何错误 segfault可能发生在函数返回后,而不是因为该函数 最后一个打印的数字是253,这是因为之后没有刷新流 printf(“\n%i”,i)并且由于segfault发生在函数之后,因此流从未被刷新 默认情况下,当连接到终端时,stdout是行缓冲的。要刷新stdout请调用fflush(stdout)或打印'\n'字符。此代码对我来说没有任何错误 segfault可能发生在函数返回后,而不是因为该函数 最后一个打印的数字是

删除错误


我完全被这个打败了。有什么帮助吗?

这段代码对我来说没有任何错误

segfault可能发生在函数返回后,而不是因为该函数

最后一个打印的数字是
253
,这是因为之后没有刷新流
printf(“\n%i”,i)并且由于segfault发生在函数之后,因此流从未被刷新


默认情况下,当连接到终端时,
stdout
是行缓冲的。要刷新
stdout
请调用
fflush(stdout)
或打印
'\n'
字符。

此代码对我来说没有任何错误

segfault可能发生在函数返回后,而不是因为该函数

最后一个打印的数字是
253
,这是因为之后没有刷新流
printf(“\n%i”,i)并且由于segfault发生在函数之后,因此流从未被刷新


默认情况下,当连接到终端时,
stdout
是行缓冲的。要刷新
stdout
请调用
fflush(stdout)
或打印
'\n'
字符。

我的赌注是printf语句

只需将其修改为:

perm_table[i] = rand() % 255;

有时您无法在屏幕上看到输出,因为它仍在printf的缓冲区中
\n
确保缓冲区已清除。

我的赌注是printf语句

只需将其修改为:

perm_table[i] = rand() % 255;

有时您无法在屏幕上看到输出,因为它仍在printf的缓冲区中<代码>\n
确保缓冲区已清除。

嗯……是的。这就是为什么“memcpy(rand_vectors[i],tmp,sizeof(float)*3);”使用float*3。我不知道你这是什么意思。嗯……是的。这就是为什么“memcpy(rand_vectors[i],tmp,sizeof(float)*3);”使用float*3。我不知道你这是什么意思。请不要把标签放在有问题的标题上。对我有用。您确定这就是您正在调用的代码吗?如果
perm_table
的大小为254,则符合错误。或者可能是代码中的其他地方?您是否尝试单独编译和运行此代码?它应该很好用!问题一定在其他地方。代码看起来正常;我敢打赌,您没有发布导致问题的代码。这段代码看起来是正确的,确实在这里编译并运行到完成。我注意到我没有把标签放在有问题的标题上。您确定这就是您正在调用的代码吗?如果
perm_table
的大小为254,则符合错误。或者可能是代码中的其他地方?您是否尝试单独编译和运行此代码?它应该很好用!问题一定在其他地方。代码看起来正常;我敢打赌,您没有发布导致问题的代码。这段代码看起来是正确的,确实在这里编译并运行到完成。我注意到我
printf("%d\n"); // basically having the \n in the end.