t=(char*)malloc(n*sizeof(char))的含义?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了t=(char*)malloc(n*sizeof(char))的含义?相关的知识,希望对你有一定的参考价值。

参考技术A 申请分配n个单位char内存空间,并把指针赋予t 参考技术B 原型:extern void *malloc(unsigned int num_bytes);
头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。
功能:分配长度为num_bytes字节的内存块
返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
说明:关于该函数的原型,在旧的版本中malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。
名称解释:malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

参考资料:http://baike.baidu.com/view/1213621.htm?fromId=736228

本回答被提问者和网友采纳

指向数组的指针(二维指针)

  1. char (*a)[N];//指向数组的指针  
  2.   
  3. a = (char (*)[N])malloc(sizeof(char) * N * m);  
  4. printf("%d ", sizeof(a));//4,指针  
  5. printf("%d ", sizeof(a[0]));//N,一维数组  
  6.   
  7. free(a);  //free double ptr

以上是关于t=(char*)malloc(n*sizeof(char))的含义?的主要内容,如果未能解决你的问题,请参考以下文章

将 operator new(sizeof(T) * N) 返回的内存视为数组

c语言指针变量?

在数组上使用 malloc

c语言中,malloc和free是啥意思?

关于sizeof的几个问题

[malloc与sizeof(data type)乘以数字而不乘以数字时,malloc的区别是什么