C基础知识(13):内存管理
如果事先不知道数组的具体长度,则需要动态分配内存。下面是例子。
#include <stdio.h>
#include <stdlib.h>
#include <string.h> int main() {
// 如果预先不知道需要存储的文本长度,则需要定义一个指针,后续再根据需求来分配内存
char *str;
// 在内存中动态地分配num个长度为size的连续空间,并将每一个字节都初始化为0
str = malloc( * sizeof(char)); // 或 str = calloc(200, sizeof(char));
if (str == NULL) {
fprintf(stderr, "Error - unable to allocate required memory\n");
} else {
strcpy(str, "I'm a Java programmer.");
}
// 假设存储更大的描述信息要使用realloc,该函数重新分配内存,把内存扩展到newsize(50)
str = realloc(str, * sizeof(char));
if (str == NULL) {
fprintf(stderr, "Error - unable to allocate required memory\n");
} else {
strcat(str, " But I have to learn C (TT)!");
}
printf("%s\n", str); // I'm a Java programmer. But I have to learn C (TT)!
// 使用 free() 函数释放内存
free(str); return ;
}
C基础知识(13):内存管理的更多相关文章
- MySQL基础知识:启动管理和账号管理
整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...
- java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理
内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory ...
- IOS基础之 (十) 内存管理
一 基本原理 1.什么是内存管理 移动设备的内存有限,每个app所能占用的内存是有限制的. 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用 ...
- IOS基础 Day-1手动内存管理
辞职回家打算自学IOS开发,就在借个地方记录一下 Day-1 手动内存管理 主要内容:release retain必须配对好,不然会占用内存 慢慢积累导 ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- c语言基础学习08_内存管理
=============================================================================涉及到的知识点有:一.内存管理.作用域.自动变 ...
- Java基础练习4(内存管理)
请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...
- 事务基础知识-->Spring事务管理
Spring虽然提供了灵活方便的事务管理功能,但这些功能都是基于底层数据库本身的事务处理机制工作的.要深入了解Spring的事务管理和配置,有必要先对数据库事务的基础知识进行学习. 何为数据库事务 “ ...
- java基础知识学习 内存相关
Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...
- IOS基础之 (十一) 内存管理 ARC
一 内存管理 1. set 方法内存管理的相关参数 retain: release旧值,retain新值(值适用于OC对象) assign:直接赋值(set方法默认,适用于非OC对象类型,即基本数据类 ...
随机推荐
- jquery中.each()方法遍历循环如何终止方法
使用return false 终止循环 function checkStar(obj){ var flag=false; //获取本节点星级 var star = obj.getAttribute(& ...
- MyBatis-01-简介
基础知识: JDBC Mysql Java基础 Maven Junit 框架:是有配置文件的.最好的方式:看官网文档 1.简介 1.1.什么是MyBatis 简介 什么是 MyBatis? MyBat ...
- nginx日志、变量
日志格式类型等 包含两类:access_log error.log log_format log只能在http模块下配置 下图是一个典型error_log配置 warn表示默认日志级别为‘’警告‘’ ...
- hdu 6041 I Curse Myself
题目: 点这里OvO http://acm.hdu.edu.cn/showproblem.php?pid=6041 2017 Multi-University Training Contest - T ...
- VC:检测网络连接的方法
方法一: #include "stdafx.h" #include "windows.h" #include <Sensapi.h> #includ ...
- js的DOM操作整理(整理)
js的DOM操作整理(整理) 一.总结 一句话总结: dom操作有用原生js的dom操作,也可以用对js封装过的jquery等插件来更加方便的进行dom操作 1.dom是什么? 对于JavaScrip ...
- React使用JSX语法
目录: 1.在React项目中启用JSX语法 2.在JSX中写js代码 3.使用JSX注意事项 1.在React项目中启用JSX语法 <--返回目录 JSX语法:符合xml规范的js语法 JS ...
- TTTTTTTTTTTTTTTT #7 div1 A Breadth-First Search by Foxpower 在线LCA(倍增),模拟
A - Breadth-First Search by Foxpower Time Limit:2000MS Memory Limit:131072KB 64bit IO Format ...
- Dungeon Master (POJ - 2251)(BFS)
转载请注明出处: 作者:Mercury_Lc 地址:https://blog.csdn.net/Mercury_Lc/article/details/82693907 题目链接 题解:三维的bfs,一 ...
- 面试准备一个访问一个URL的过程简版
客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TC ...