常用内存分配函数的说明

下面哪种C/C++ 分配内存的方法会将分配的空间初始化为0

A malloc()
B calloc()
C realloc()
D new[ ]

1) malloc 函数: void *malloc(unsigned int size)
在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会进行初始化。

2)calloc 函数: void *calloc(unsigned int num, unsigned int size)
按照所给的数据个数和数据类型所占字节数,分配一个 num * size 连续的空间。
calloc申请内存空间后,会自动初始化内存空间为 0,但是malloc不会进行初始化,其内存空间存储的是一些随机数据。

3)realloc 函数: void *realloc(void *ptr, unsigned int size)
动态分配一个长度为size的内存空间,并把内存空间的首地址赋值给ptr,把ptr内存空间调整为size。
申请的内存空间不会进行初始化。

4)new是动态分配内存的运算符,自动计算需要分配的空间,在分配类类型的内存空间时,同时调用类的构造函数,对内存空间进行初始化,即完成类的初始化工作。动态分配内置类型是否自动初始化取决于变量定义的位置,在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量都不进行初始化。

这里仅针对new[]说明一下。

#include <iostream>
#include <cstring>using  namespace std;class A {
public:int a;static  int b;
};
int A::b;
int main(int argc ,char* argv[])
{A *test = new A;cout << test->a << endl << test->b << endl<< endl;int *a = new int[4];for (int i = 0; i < 4; ++i)cout << *a++ << ' ';return 0;
}

我们看看输出:
这里写图片描述

选项D,是new数组的形式。new[](new的数组版)要求元素对象的类型必须具有默认构造函数(内建类型的“默认构造函数”是什么也不做),否则将不能使用new[]。
不过,C++11中已经不提倡用c array。更多的是用vector代替

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(120):css精灵和好处

精灵图的目的&#xff1a;很多大型网站在首次加载的时候需要加载很多小图片&#xff0c;如果在同一时间&#xff0c;服务器又拥堵的话&#xff0c;就会导致页面加载慢。为了解决这一问题&#xff0c;就用了精灵图来解决加载时间过长影响用户体验的问题。 精灵图的本质&#xf…

Windows 2008上安装VS2008SP1时的怪异错误

由于重做系统&#xff0c;需要重新安装开发工具&#xff0c;于是开始了坚苦而漫长的安装。 不料在安装VS 2008 SP1时&#xff0c;安装到Microsoft .net framework 3.5 SP1时出错了&#xff0c;我就感觉纳闷了&#xff0c;这种安装过程我都安装了N次了还没出过什么错&#xff0c…

【常见笔试面试算法题12续集六】动态规划算法案例分析6 最优编辑练习题

学习交流加 个人qq&#xff1a; 1126137994个人微信&#xff1a; liu1126137994学习交流资源分享qq群&#xff1a; 962535112 对于两个字符串A和B&#xff0c;我们需要进行插入、删除和修改操作将A串变为B串&#xff0c;定义c0&#xff0c;c1&#xff0c;c2分别为三种操作的代价…

shell 思维导图

分享一下&#xff1b;

《大败局》读书笔记

史玉柱犯了一个很多青年企业家都容易犯的错误&#xff1a;把预期的利润当成了实际的收益&#xff0c;并以此为基数来设定自己的规划。 制度重于技术。 秩序重于利益。 职业人格缺陷。 市场是很公平的&#xff0c;你怎么从暴利中得来的钱&#xff0c;你得再怎么赔进去。 如果管理…

计数排序的应用----排序字符串

加qq1126137994 微信&#xff1a;liu1126137994 一起学习更多技术&#xff01;&#xff01;&#xff01; 题目&#xff1a; 给你一个原始字符串&#xff0c;根据该字符串内每一个字符串出现的次数&#xff0c;按照ASCII码递增的排序重新调整输出。 举例: eeefgghh 则每种字…

Linux 总线、设备、驱动模型的探究

学习交流加 个人qq&#xff1a;1126137994 个人微信&#xff1a;liu1126137994 学习交流资源分享qq群&#xff1a;962535112之前一直做项目&#xff0c;做项目的过程虽然也学习到了不少知识&#xff0c;但是&#xff0c;一直没有好好研究总线设备驱动的机制&#xff0c;今天来学…

面试题:移动数组的元素

加qq 1126137994 一起学习更多技术&#xff01;&#xff01;&#xff01; 描述 试设计一个算法&#xff0c;将数组a中的元素a[0]至a[n-1]循环右移k位&#xff0c;并要求只用一个元素大小的附加存储&#xff0c;元素移动或交换次数为O(n)。 输入 先输入一个大于1且小于100的…

n个字符串按照字典序排列

题目描述 给定n个字符串&#xff0c;请对n个字符串按照字典序排列。 输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。 输出描述: 数据输出n行&#xff0c;输出结果为按照字典序排列的字符串。 输入例子:…

二叉树的层序遍历详细讲解(附完整C++程序)

加qq1126137994 微信liu1126137994 一起学习更多技术 1、原理&#xff1a; 层序遍历所要解决的问题很好理解&#xff0c;就是按二叉树从上到下&#xff0c;从左到右依次打印每个节点中存储的数据。如下图&#xff1a; 按层序遍历的原则&#xff0c;打印顺序依次应该是&…

不同DPI下窗体的自适应的有关注意点(转)

不同DPI下窗体的自适应的有关注意点&#xff08;转自&#xff1a;http://hi.baidu.com/superkinger/blog/item/79e047ec6c80563526979197.html&#xff09; 1. 在设计窗体的时候需要考虑是否允许程序在不同DPI自适应窗体&#xff0c;不自适应的优点是在不同的DPI下看到的…

【C++深度剖析教程30】C++中抽象类和接口

加qq1126137994 微信&#xff1a;liu1126137994 1、面向对象中的抽象概念; 在现实中&#xff0c;需要知道具体的图形类型才能知道如何求面积&#xff0c;但是对于抽象的‘图形’&#xff0c;我们是没法求其面积的&#xff0c;而且对其求面积也是没有意义的&#xff1a; cl…

有效沟通力思维导图

有效沟通&#xff0c;适用于生活和工作中&#xff0c;甚至是孩子教育上面&#xff0c;分享一下&#xff1b;

[转]Microsoft Solution Framework 微软解决方案框架结构

本文转自&#xff1a;http://baike.baidu.com/view/1291436.htmMSF&#xff08;Microsoft Solution Framework&#xff09;微软解决方案框架结构是一组建立、开发和实现分布式企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标&#xff0c;降低采用…

指针的大小与什么有关

指针的大小与什么有关&#xff1f; cpu位数&#xff08;32位数4字节&#xff0c;64位数8字节&#xff09;操作系统位数&#xff08;32位数4字节&#xff0c;64位数8字节&#xff09;编译器的位数&#xff08;32位数4字节&#xff0c;64位数8字节&#xff09; 当上述3种位数不…

数据结构思维导图

学习是一个不断渐进的过程&#xff0c;最近整理了一下数据结构思维导图&#xff0c;分享一下&#xff0c;后续更新中 总结&#xff1a;算法实际上属于&#xff0c;数据建模&#xff0c;首先是问题的抽象&#xff0c;采用数学公式来表示&#xff08;数据建模&#xff1a;将问题…

(转)代理模式(Proxy)

原文地址&#xff1a;http://www.cnblogs.com/QinBaoBei/archive/2010/05/18/1737866.html 为了深刻点理解代理模式&#xff0c;我们先来看一个 Demo &#xff0c; 首先这个 Demo 是用来测试 QQ 号码是否在线&#xff0c; 这里涉及到的内容是 Web 服务的使用&#xff0c; 这个 …

【C++深度剖析教程31】被遗弃的多重继承

加qq1126137994 微信&#xff1a;liu1126137994 C中是否允许一个类继承多个父类&#xff1f; C支持编写多重继承的代码&#xff1a; 一个子类可以拥有多个父类子类拥有所有父类的成员变量子类继承父类所有的成员函数子类对象可以当做任意父类对象使用 多重继承的语法规则&a…

zookeeper思维导图

之前用word文档记笔记&#xff0c;但是没有思维导图清晰&#xff0c;又整理了一下&#xff0c;分享一下&#xff1b;