摘要:
最近遇到了一个问题,就是一个头文件有一个static的变量,编译的文件有几个.o的,他们都引用了这个头文件,但是当打印出这个变量(经过修改了)的值得时候,居然不一样,打印出地址来,地址居然也不一样。两个不同地址,一个相同的变量名?究竟怎么回事情呢???这个变量许多文件要用。但是放到h文件,又是个问题啊。。。使用extern 声明外部变量,必须符合下面的情况生成的.o 不能引用包括这个变量定义的文件。但是我又使用了这个头文件的其他函数,郁闷了。经过试验 应是这样的,变量 不要用static,因为外部要extern使用,反而不能用static了 才郁闷呢。实验如下:head1.h#include 阅读全文
摘要:
写了个小程序 本来打算写个hash表的,但是出现“段错误”#include<stdio.hstruct a{ char a[4096]; char a1[4096]; char a2[4096]; char a3[4096];};int main(){ struct a b[1500]; int i=0; for(;i<1500;i++) memset(b.a,oxff,4096); sleep(2000);}我就在纳闷,不就是分配点空间,怎么就不行了?后来知道,原来这是stack size 堆大小 达到最大后,就错误了。在Linu... 阅读全文