发布时间:2013-01-15 22:25:18
1、找错 void test1(){ char string[10]; char* str1="0123456789"; strcpy(string, str1);} 这里string数组越界,因为字符串长度为10,还有一个结束符‘\0’。所以总共有11个字符长度。.........【阅读全文】
发布时间:2013-01-10 21:05:59
在C和C++语言开发中,指针、内存一直是学习的重点。因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患。 因此,无论如何,我们都要对内存有一个清晰的理解。 一、对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。即理论上支持如下的大数组:char szBuffer[2*1024*1024*1024]; 当然,由于在实际运行时,程序还有代码段、临时变量段、动态内存申请等,实际上是不可能用到......【阅读全文】