临时new开辟内存空间

发布时间:2024年01月12日
#include <stdio.h>






int main() {
    
int* str1 = new int;     //未进行初始化	
	int* ptr1 = new int(11); //初始化为11


	int* str2 = new int[5]; //分配一个数组空间,未初始化	
	int* ptr2 = new int[5] {1,2,3,10,20}; //分配数组空间,初始化

	*str1 = 12; 
	for(int k=0;k<5;k++){
    	
		*(str2+k)=k*10+10;}

	printf("*str1=%d,str1=%p\n", *str1, str1); printf("\n");
	printf("*ptr1=%d,ptr1=%p\n", *ptr1, ptr1); printf("\n");

	for(int k=0;k<5;k++){
		printf("*str2[k]=%d,str2=%p\n", *(str2+k),str2);
	}printf("\n");
	for(int j=0;j<5;j++){
		printf("*ptr2[j]=%d,ptr2=%p\n", *(ptr2+j),ptr2);
	}	

	delete str1, delete ptr1, delete[] str2,delete[] ptr2; 	
	return 0;
}

使用new开辟新空间的方式1:

    int* str1 = new int;

此方式只开辟一个指定类型的空间;

使用new开辟新空间的方式2:

	int* str2 = new int[5];

此方式开辟指定类型的连续空间,相当于开辟一个数组;

与malloc开辟空间比较详见:C++基础——new和delete动态开辟_c++开辟内存空间-CSDN博客

文章来源:https://blog.csdn.net/weixin_46855342/article/details/135534879
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。