数据结构之存储位置

  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内存释放,合理设计算法,避免算法问题导致的内存无线增长,合理设置作用域。保证数据不会超过分配内存来避免指针越界。

相关推荐
2501_941235511 分钟前
C++与机器学习框架
开发语言·c++·算法
CoovallyAIHub3 分钟前
基于SimCLR的自监督 YOLO:YOLOv5/8也能在低标注场景目标检测性能飙升
深度学习·算法·计算机视觉
q***d1736 分钟前
微服务与单体架构的成本对比
java·微服务·架构
冻感糕人~13 分钟前
Agent框架协议“三部曲”:MCP、A2A与AG-UI的协同演进
java·人工智能·学习·语言模型·大模型·agent·大模型学习
2501_9411118617 分钟前
C++模块化设计原则
开发语言·c++·算法
阿Y加油吧24 分钟前
java并发编程面试题精讲——day02
java·面试·c#
2501_9412375327 分钟前
基于C++的游戏引擎开发
开发语言·c++·算法
ArabySide29 分钟前
【Spring Boot】基于MyBatis的条件分页
java·spring boot·后端·mybatis
_OP_CHEN33 分钟前
算法基础篇:(十)贪心算法拓展之哈夫曼编码:从 “合并最优” 到数据压缩的传奇
c++·算法·贪心算法·蓝桥杯·哈夫曼编码·算法竞赛·acm/icpc
z***y86236 分钟前
后端服务限流配置,Nginx与Spring Cloud Gateway
java·服务器·nginx