首先先说明下,本文中代码来自牛刀教程。写的很不错。给我不少的启发。谢谢了
我们都知道,在使用C语言时,比如定义一个数组,一个变量。那么系统都会随机的分配内存。那么你知道内存分配的规律吗?
让我们用两个实验来说明windows和linux下,内存分配方式的不同。
同一个程序(如下)
#include <stdio.h>
int main()
{
char ch1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
char ch2[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'};
char ch3[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
printf("%c\n", ch2[-4]); //请先无视这样的写法
printf("%s\n", ch1);
printf("%s\n", ch2);
printf("%s\n", ch3);
return 0;
}
我们在