C语言内存管理相关知识点

来源:互联网 发布:如何加入淘宝网热卖 编辑:程序博客网 时间:2024/06/09 17:31

1.程序运行过程中,内存被分成了哪几个区域?

2.每个区域存放数据的特点是什么?

3.分析下面的代码在内存中的布局情况(所属区域、占空间大小)
       3.1

char str1[] = "Neusoft";
int main()
{
      char str2[] = "Neusoft";
      char c = 'a';
}

    3.2.

char *pstr1 = "neusoft";
void main()
{
    pstr1[0] = 'N';
}

3.3

char *pstr2;
void main()
{
    if(NULL == (pstr2 = (char *)malloc(sizeof(char)*10)))
    {
        return;
    }
    pstr2[0] = 'N';
    free(pstr2);
}

 

3.4

char * const pstr3 = "neusoft";
int main()
{
    pstr3[0] = 'N';
}

3.5

char const * pstr4 = "neusoft";
int main()
{
    pstr4[0] = 'N';
}

3.6

char const * const pstr5 = "neusoft";
int main()
{
    pstr5[0] = 'N';
}

4.

单色16x16点阵字模:
char pDa[] = {0xff, 0xff, ……};      //32字节
char pLian[] = {0xff, 0xff, ……};    //32字节
……    //2000个汉字

5.

#define BUF_SIZE 100000000
int main()
{
    int arr[BUF_SIZE]={0};
}
有什么问题?如何改正?(不允许修改BUF_SIZE宏值)

6.

说一下你对const,static的理解。

7.

malloc, 参数,返回值,使用注意事项!