我开始研究装配以及记忆在计算机中的工作原理。
我的操作系统是Debian 7 Wheezy Kernel 3.2 64位,我的gcc版本是4.7
我已多次执行此代码并且有效,但内存不会随机化段;所以我去了/ proc / sys / kernel / randomize_va_space并将其从2更改为1,从1更改为0,最终从0更改为2,但在所有情况下都会出现“Segmentation Fault”。奇怪的部分是当我将其返回到其默认值时,它给出了相同的错误消息!
#include<stdio.h>
#include<stdlib.h>
int add(int x, int y)
{
int z =10;
z = x + y;
return z;
}
main(int argc, char **argv)
{
int a = atoi(argv[1]);
int b = atoi(argv[2]);
int c;
char buffer[100];
gets(buffer);
puts(buffer);
c = add(a,b);
printf("Sum of %d+%d = %d\n",a, b, c);
exit(0);
}
我将非常感谢您的帮助。