数据结构之存储位置

  1. p 和 "hello,world"存储在内存哪个区域?( ) (鲁科安全)

int main()

{

char *p = "hello,world";

return 0;

}

p是栈区,"hello,world"是.ro段

  1. 一个由C/C++编译的程序,会将占用的内存分为几个部分:堆、栈、代码段、数据段、BSS段。请问以下程序中的变量a、b、c、d,分别被存在内存的哪个部分?(泰华智慧)

int a = 0; // 全局变量

char *b;// 全局变量

int main()

{

int c; //局部变量

static char d = 'a'; //static变量

b = malloc(10);

*b = d;

return 0;

}

a:.data段 b.bss段 c.栈区 d.data段

  1. 如下代码:变量g_iA,g_iB,g_iC,iD,iE, iF, piG,iH 分别在内存中的什么区( ) (H3C)

int g_iA = 1; //.data

int g_iB; //.bss

static int g_iC = 1; // .data

void func1(){

static int iD=2; // .data

iD++;

int iE=2; //栈区

iE++;

}

void func2(){

int iF=3; //栈区

int *piG = (int*) malloc(4); //堆区

}

int main(){

int iH = 100; //栈区

}

  1. 有关内存的思考题 (山东山大电力技术有限公司,登虹科技,昆腾微电子)

void GetMemory(char *p)

{

p =(char *)malloc(100);

}

void Test(void)

{

char *str=NULL;

GetMemory(str);

strcpy(str,"hello world");

printf(str);

}

请问运行 Test 函数会有什么样的结果?

str 仍然是 NULL ,然后尝试使用 strcpy 复制字符串到 NULL 指针,通常程序崩溃。

char * GetMemory(void)

{

char p1[] = "hello world"; //char *p = "hello world"

return p1;

}

Void Test(void)

{

char *str=NULL;

str = GetMemory();

printf(str);

}

请问运行 Test 函数会有什么样的结果?

GetMemory 函数返回一个指向局部数组 pl 的指针。这个数组在函数返回后会失效,因此返回的指针指向的是一个未定义的值。

void GetMemory(char **p,int num)

{

*p = (char *)malloc(num);

}

void Test(void)

{

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello world");

printf(str);

}

请问运行 Test 函数会有什么样的结果?

能正常打印 hello world

void Test (void)

{

char *str = (char *)malloc(100);

strcpy(str,"hello");

free(str);

if(str != NULL)

{

strcpy(str, "world");

printf(str);

}

}

请问运行 Test 函数会有什么样的结果?

可以正常打印world

  1. 堆和栈的区别是什么? (矩阵软件)
    1. 增长方向不同。
    2. 管理分配速度不同。
    3. 空间大小不同。
    4. 频繁的使用堆会产生大量的碎片,而栈则不会。

什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法?(山大华天,智洋创新)

内存泄漏:如果没有适时释放被动态分配的内存,会导致内存泄露问题。未释放的内存一直占用系统资源,使得系统变慢并最终导致崩溃。

解决方法:即使使用free内存释放,合理设计算法,避免算法问题导致的内存无线增长,合理设置作用域。保证数据不会超过分配内存来避免指针越界。

相关推荐
my rainy days2 小时前
C++:友元
开发语言·c++·算法
haoly19892 小时前
数据结构和算法篇-归并排序的两个视角-迭代和递归
数据结构·算法·归并排序
微笑尅乐2 小时前
中点为根——力扣108.讲有序数组转换为二叉搜索树
算法·leetcode·职场和发展
小梁努力敲代码2 小时前
java数据结构--List的介绍
java·开发语言·数据结构
摸鱼的老谭2 小时前
构建Agent该选Python还是Java ?
java·python·agent
lang201509282 小时前
Spring Boot 官方文档精解:构建与依赖管理
java·spring boot·后端
夫唯不争,故无尤也2 小时前
Tomcat 启动后只显示 index.jsp,没有进入你的 Servlet 逻辑
java·servlet·tomcat
zz-zjx3 小时前
Tomcat核心组件全解析
java·tomcat
im_AMBER3 小时前
算法笔记 05
笔记·算法·哈希算法
Deschen3 小时前
设计模式-外观模式
java·设计模式·外观模式