【发布时间】:2015-11-24 18:02:17
【问题描述】:
我无法运行此 c 代码。当我这样做时,我得到分段错误和“返回”错误返回 0xdeadbeef;
大家有什么建议吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int lame(unsigned int size, unsigned int value){
unsigned int array1[4];
unsigned int array2[6];
array2[5] = value;
memcpy(&array1, &array2, size * sizeof(unsigned int));
return 1;
}
void awesome(){
printf("awwwwwww yeaaahhhhh! All awesome, all the time!\n");
}
main(unsigned int argc, char ** argv){
unsigned int size, value;
size = strtoul(argv[1], 0, 10);
value = strtoul(argv[2], 0, 16);
if(!lame(size, value)){
awesome();
}
else{
printf("I am soooo lame :(\n");
}
return 0xdeadbeef;
}
【问题讨论】:
-
不要发布代码链接。特别是不要发布代码图像的链接。在您的帖子中发布代表代码
-
首先,不要发布代码链接,链接可能会过时并使您的问题变得毫无价值。其次,更重要的是,不要发布文字图片!这使得我们完全不可能复制和粘贴它来自己尝试。相反,您应该复制并粘贴文本并将其作为文本放入问题正文中。
-
几乎每一行代码都至少存在一个错误。您需要的是入门编程课程,而不是问答网站。
-
另外,如果您遇到崩溃,那么您应该在调试器中运行以定位代码中的崩溃。此外,如果你有缓冲区溢出,那么你有未定义的行为,这是不好的,可能导致任何类型的事情发生。
-
我现在已经复制了代码。很抱歉