Tag: 运行时

codechef:smallfactorial中的错误答案错误

#include int fact(int k) { int j,f=1; for(j=1;j<=k;j++) f*=j; return f; } int main() { int t,i,n[100],s[100],j; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d",&n[i]); } for(j=0;j<t;j++) { s[j]=fact(n[j]); printf("%d \n",s[j]); } return 0; } 系统会要求您计算一些小正整数的阶乘。 输入 整数t,1 <= t <= 100,表示测试用例的数量,后跟t行,每行包含一个整数n,1 <= n <= 100。 产量 对于输入处给出的每个整数n,显示一个值为n的行! 例 样品输入:4 1 2 5 3样品输出:1 2 120 6

for循环的C运行时错误

我写了一小段我认为可以工作的代码,我得到了控制台中显示的所有值,但此后不久我收到了运行时错误。 任何人都知道为什么? #include int array[10]; void main() { int i; for(i = 0; i < 10; i++){ array[i] = i; printf("%i", array[i]); } return; } 输出: Runtime error time: 0 memory: 2248 signal:-1 0123456789 任何帮助将不胜感激,谢谢!

Runtime Exec意外停止

我在C中有一个可执行程序,可以为文件生成大量输出。 当我用Runtime调用这个程序时,像这样: Runtime r = Runtime.getRuntime(); Process p = null; p = r.exec(“./my_program -in input.file -out output.file”, null, new File(System.getProperty(“java.io.tmpdir”))); 当程序产生低输出时,一切都还可以,但是当我用大输入调用“* my_program *”时,它会向output.file产生大量输出,但在这种情况下,我的Java程序冻结并没有发生任何事情。 .. 我在终端中用很多大输入测试“* my_program *”并且一切正常,但是当我使用Runtime.exec用Java调用程序时,Java程序就会冻结。 – 提前致谢

有没有办法在运行时访问调试符号?

这是一些示例代码,用于了解我想要的内容。 int regular_function(void) { int x,y,z; /** do some stuff **/ my_api_call(); return x; } … void my_api_call(void) { char* caller = get_caller_file(); int line = get_caller_line(); printf(“I was called from %s:%d\n”, caller, line); } 有没有办法实现get_caller_file()和get_caller_line() ? 我已经看到/使用#define ing my_api_call这样的技巧作为函数调用传入__FILE__和__LINE__宏。 我想知道是否有办法在运行时而不是编译时访问该信息(假设它存在)? 像Valgrind这样的东西是不是必须做这样的事情才能获得它返回的信息?

使用字符串文字处理char * init时崩溃,但不使用malloc处理崩溃

我今天正在读一本关于C的书,它提到以下是真的; 我很好奇为什么要让这个程序validation; 然后最终在这里发布,所以比我聪明的人可以教我为什么这两个案例在运行时是不同的。 该问题的细节与运行时之间的差异有关,如何处理(char *)是基于它是否指向创建为文字的字符串与使用malloc和手动填充创建的字符串。 为什么内存分配的内存更像这样保护? 另外,答案是否解释了“总线错误”的含义? 这是我写的一个程序,询问用户是否想要崩溃,以说明程序编译正常; 并强调在我的脑海中,两个选项中的代码在概念上是相同的 ; 但那就是为什么我在这里,要明白为什么他们不是。 // demonstrate the difference between initializing a (char *) // with a literal, vs malloc // and the mutability of the contents thereafter #include #include #include int main() { char cause_crash; char *myString; printf(“Cause crash? “); scanf(“%c”, &cause_crash); if(cause_crash == ‘y’) { myString = […]

C,运行时测试,如果PATH中存在可执行文件

我目前正在用C编写一个应用程序,目标是BSD和Linux系统,希望能够通用。 这个程序是运行时依赖,在本例中是mplayer。 目前我正在使用execlp()来启动mplayer。 我正在检查execlp调用的错误代码,我正在测试EACCESS ,所以我知道当我尝试运行mplayer时它是否存在。 由于我的程序工作方式,mplayer是必需的依赖项,但在我的程序启动后可能不会使用一段时间。 作为用户体验,由于mplayer丢失,程序在失败之前已经运行了一段时间是很差的。 所以我想在我的程序启动时测试mplayer的存在。 如果mplayer不可用,可能会发送错误消息。 现在我知道这里存在竞争条件,因此我当前对EACCESS错误的处理必须保持EACCESS 。 我们可以找到用户启动程序运行的情况,然后卸载mplayer。 这是被接受的。 我最初的想法是在执行的早期调用execlp() ,但这会导致mplayer明显启动。 说实话,我宁愿不要启动mplayer,只是测试我是否“可以”启动它(例如,在我的路径中某个地方存在一个名为mplayer的文件并且它是可执行的)。 然后再考虑运行这些精确步骤,查看路径并测试匹配文件是否可执行。 我还没有对此进行编码有两个原因。 第一个原因,确保execlp是找到我发现的相同的东西,我必须将发现的路径名传递给execlp,绕过内置的PATH搜索机制。 另一个原因就是我觉得我错过了一个明显的伎俩。 是否有我应该用来搜索可执行文件的函数? 或者我真的需要继续进行并对其进行编码。

调试C运行时

我想详细了解使用GDB在main()之前和之后发生的事情。 仅仅用-g重新编译glibc并链接到那个就足够了吗?

Objective-C如何编译?

我只是很好奇,Objective-C是否编译成C代码或者Objective-C运行时是否像程序上方的抽象层一样工作? 如果我不知道我在说什么,请提前抱歉!

加载器和C运行时初始化的角色之间的差异

我正在阅读此链接中有关C运行时初始化的角色: http : //www.embecosm.com/appnotes/ean9/html/ch05s02.html 它说运行时初始化执行诸如设置堆栈之类的任务,并且在更详细的页面中它还说它用零初始化bss段。 在其他一些地方,我也读到它初始化数据和其他一些段。 这在我的脑海中产生了一个疑问,那就是装载机的function呢? 因为其中一些任务也是装载机的责任。 所以,我的问题: 运行时初始化或c运行时实际上做了什么? 装载机实际上做了什么? 编辑 好的,如果该链接具体描述了嵌入式系统的运行时初始化的作用,那么它对普通系统有什么作用。 据我所知,运行时初始化将只调用main,而没有其他工作留给它。

“分段错误”与“运行时间”错误?

考虑一下这段片段: char *str = “hellow Ghost”; str[0] = ‘z’; printf(“%s”, str); 这是一个分段错误。 它是否也在运行时内存错误? 我通过分段故障理解的是:当您访问不属于您的内存时出现分段错误。 它基本上是为您创建的实用程序,可以在不让您破坏内存的情况下轻松完成工作。 分段错误涵盖了多少和什么样的内存错误以及调用它来检查指针或引用处理内存的错误。 由于逻辑不正确,也会发生运行时错误。 除此之外,运行时错误和关于内存的分段错误之间是否存在任何差异。