这个非常简单的代码在使用 GNU、Intel 或 PGI(我认为这真的是 GNU?)编译时运行良好。在 Cray 下,它永远不会进入“debug6”;它在“calloc”调用中失败,返回“非法指令”错误。有人看到问题吗?编辑:这是一个运行时错误,而不是编译时错误。
进一步编辑:如果有人想要另一个线索,malloc()
在calloc()
没有的地方工作。
和另一个编辑:如果你想要另一个线索,我calloc()
最多可以 15 个字符,没有问题。它失败了16个或更多。
#include <stdio.h>
#include <stdlib.h>
int attempt_something() {
char *needed_file_name = NULL;
printf("debug2\n");
needed_file_name = calloc(16, sizeof(char));
printf("debug6\n");
fflush(stdout);
free(needed_file_name);
return 0;
}
int main() {
int rst_type;
printf("debug1\n");
rst_type = attempt_something();
}