C语言--动态分配内存

原创 2016年08月31日 16:34:50

1.C语言中动态分配内存一般来说使用malloc函数,该函数包含在头文件 <stdlib.h>中,函数返回一个(void* )类型的指针,即从堆中申请到的空间的地址。

例如:

int* p=NULL;

p=(int* )malloc(sizeof(int)*10);

即给指针p分配了40个字节大小的空间,可以把这个分配的空间当做数组处理,即p指向一个10个int型变量组成的数组的首地址。


2.如何动态分配内存空间使之达到类似二维数组的效果呢?

如下:

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int **a;
    int i, j;
    a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行
    for (i = 0; i < 3; ++i)
    {   
  //为每列分配4个大小空间
        a[i] = (int*)malloc(sizeof(int)*4);
    }
    //初始化
    for (i = 0; i < 3; ++i)
    {
        for (j = 0; j < 4; ++j)
        {
            a[i][j] = i+j;
        }
    }
    //输出测试
    for (i = 0; i < 3; ++i)
    {
        for (j = 0; j < 4; ++j)
{
            printf ("%d ", a[i][j]);
        }
        printf ("\n");
    }
    //释放动态开辟的空间
    for (i = 0; i < 3; ++i){
        free(a[i]);
    }
    free(a);
    return 0;
}
注释比较清晰易懂,就不再解释啦。

3.类似的方法,可分配动态的三维、四维等等。。。。。

相关文章推荐

c语言 什么时候需要动态分配内存?

我讲解一下c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢?系统难道不是会自动分配内存吗?? 既然有人会问这样的问题,那么我在这里好好的讲解一下...

C语言:动态分配内存,malloc()与realloc()区别

C语言:动态分配内存,malloc()与realloc()区别
  • xyphf
  • xyphf
  • 2017年07月24日 14:44
  • 151

关于c语言动态分配内存的知识点的总结(总结)

内存分配函数的使用(自己总结的内存分配相关的知识,部分参考网上的知识) 1 malloc函数是动态分配一段堆上内存,并且返回该内存的首地址,该函数不对申请的空间进行清空操作;    malloc是...

C语言-动态分配内存对任意个字符串进行排序

//动态分配内存对输入的任意字符串排序 #include #include #include #include //比较大小 //int str_compare(const char* src,co...

android ndk 03 C语言 动态分配内存,字符串操作

动态分配内存,字符串操作动态内存分配在说动态内存分配之前先说下 静态内存分配 void main(){ //静态内存分派 int a[1024*1024*10];//申请10m ...

C语言中的动态分配内存空间以及内存泄露

ISO C说明了3个用于存储空间动态分配的函数,这三个函数简称为alloc函数。 函数原型: #include void *malloc( size_t size ); void *calloc...

你真懂动态分配内存吗?不是所有人能都做对这四道题......

废话少说,上程序 1、 void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char...

[C++学习笔记]--动态分配内存空间

我们在C语言中学过malloc函数,来动态分配内存空间,然而在C++中我们用的是new运算符。强调一下,malloc();是函数。而new是运算符,和sizeof()不是函数一个意思。     ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言--动态分配内存
举报原因:
原因补充:

(最多只允许输入30个字)