-
事实上,这是没有办法做到的。 只要想在函数内部动态请求内存,在函数外部使用,就必然会有这样的矛盾。
在返回之前使用 delete 就是在使用指针之前释放指针,这当然是不允许的。 如果退货后使用,使用后必须手动删除,否则会出现内存泄漏。
如果是我,我的解决方案是在函数外动态请求内存,应用后传递给反字符串函数,返回使用,然后让主函数释放请求的内存。 即 ReversString 的原型声明为:
void reversstring(const char * str, char *return)
个人意见。
-
用完后,删除,当然,在返回后。
-
如果有语句 aaa = reversstring( ..)
然后当你完成后:删除 aaa 就可以开始了。
-
C C++ 编译的程序占用的内存分为以下几个部分:
1. Stack — 由编译器自动赋值和释放,存储函数的参数值和局部变量的值。
等。 它的行为类似于数据结构中的堆栈。
2.堆区(HEAP)——一般由程序员指派发布,如果程序员不发布,程序可能会结束。
由 OS** 提供。 请注意,它与数据结构中的堆不是一回事,它像链表一样分布,呵呵。
3. 全局面积(静态面积)(静态)- 将全局变量和静态变量的存储放在一起。
发起的全局变量和静态变量位于同一区域,未初始化的全局变量和未初始化的静态变量。
变量位于另一个相邻区域。 - 程序结束后有一个系统版本。
4. 文本常量区域 - 常量字符串放置在此处。 程序结束后,系统会释放。
5. 程序区 - 函数体的二进制文件。
所以你说的 1 是不正确的。
2 文本常量区域和**区域是独立的,**区域存储编译的文本常量区域并存储字符串常量。
例如,char *p="123455";那么这个“12345”就放在文本常量区域,这个区域是不能修改的,p指向的内容是不能修改的。
3malloc 应用程序和新应用程序位于同一位置,称为堆区域,也称为可用存储区域。
4 马洛克等
5.解释被构造的变量,如果不需要地址,编译器会对其进行优化,并在变量出现的地方将其替换为常量,如const a=3;
后跟 b=a+b; 编译器直接处理到 .
b=3+b;
-
1.你是对的,在程序开始运行时分配内存,在程序结束时释放内存。
2.文本常量区域和程序区域通常是只读存储器。
应用程序在堆上,由程序员分配和释放,如果程序员不释放它,操作系统将在程序结束时收回它。
和 new 都在堆上请求内存。
由编译器决定常量是否分配内存。
-
分区管理。
C C++ 编译的程序占用的内存分为以下几个部分:
1)堆栈:由编译器自动赋值和释放,存储函数的参数值、局部变量的值等。 它像数据结构中的堆栈一样运行,地址从高到低延伸。
2)堆:一般由程序员分配和释放,程序分配的内存在程序执行过程中动态应用,地址从低延伸到高,这与堆栈相反。如果程序员不发布,程序可能会以 os** 结束。
请注意,它与数据结构中的堆不是一回事,它的分配方式类似于链表。
3)静态区域:全局变量和静态变量的存储放在一起,初始化的全局变量和静态变量在一个区域,未初始化的全局变量和未初始化的静态变量在另一个相邻区域。- 程序结束后有一个系统版本。
4. 文本常量区域 - 常量字符串放置在此处。 程序结束后,系统会释放。 (5)程序区:存放函数体的二进制文件。
-
1.所有C语言在编码时都不会打开内存,只有在编译后才会生成可执行程序,并在可执行程序中给出内存打开方法。
当程序运行时,真正的内存被打开。 程序被加载到内存中并开始运行。
一个C程序加载到内存中后,在内存的进程空间中有一个**区域、一个全局数据区域、一个堆区域和一个堆栈区域。 **区域存储**编译执行指令; 全局数据区存储全局变量和静态变量; 堆栈将局部变量和返回地址存储在函数内部,并且仅在调用函数时请求这部分内存。 堆是自由请求内存的区域。 你需要使用 malloc 和其他内存来分配自己的内存,这部分内存需要自己释放。
至 int i; 这样的句子,在C语言中,既是一个声明,也是一个定义,所以这样的语句已经分配了内存,而不是等待赋值的时间。
如果你不明白,你可以问。
-
例如,在程序中定义了一个 int i
当这个程序运行到 int i 时,操作系统被要求为我们的程序分配内存空间。
不赋值也会打开内存空间,不信可以输出,全局变量为0,局部变量为负大随机数。
-
**只有在运行时才会被加载到内存中,并且开始对内存进行操作,如果不运行,它只是文本文件中的一种字体。 int i 已经打开了内存,已经有了一个地址来存储变量 i,但是这个地址的内容不确定,可以打印 i,也可以取 i 的内存地址。
-
在编译时,int 会被转换为内存清理指令,运行时会根据编译程序中的内存清理指令打开内存。
-
你怎么能不跑就开。 定义后,打开,无需等待分配。
首先,硬盘的使用要合理分区,C盘通常用于系统文件使用,称为系统盘,一般用20到25G来安装目前W7以上的系统就足够了,有了系统之后,就要看你经常用什么软件了,也就是 你的电脑的用途,如果你只做一些文字软件,硬盘中存储的临时文件或临时文件的数量一时半会儿不明显,除非你不安装保护软件,否则它已经注入了自动访问病毒。 >>>More
应该是系统的虚拟内存设置在C盘中,设置多少就可以减少多少。 还有一些受保护的系统文件,需要取消选中这些文件才能隐藏受保护的系统文件才能显示。 可以设置虚拟内存到其他分区,方法是在我的电脑上右键---属性---性能设置---高级---虚拟内存设置,系统版本略有不同。
printf("请输入 k 的值:");
scanf("%d",k);这句话应该写成scanf("%d",&k);K 正面"&"如果你丢失了它,你肯定会报告一个错误。 >>>More