C语言 我是初学者
1)realloc和malloc/calloc在申请空间的方式上是相同,申请空间的内存区域也是一样的(堆区间),所以都有可能失败。失败的原因有可能是内存不足,也有可能是申...
1)realloc和malloc/calloc在申请空间的方式上是相同,申请空间的内存区域也是一样的(堆区间),所以都有可能失败。失败的原因有可能是内存不足,也有可能是申请的空间大于一个段地址所能容纳的最大数据量(比如偏移址是4个十六进制,那么一个段地址所能容纳的数据就是2^16bytes)
2)写法不同而已,malloc (sizeof_t *n),calloc (sizeof_t t,sizeof_n)结果是一样的,但是realloc则可能涉及到内容复制,所以尽可能少用。使用alloc函数后要记得free,避免memory leak
3)有,测试方法:printf ("%p",NULL),但是他不属于任何类型,不能试图改变NULL的指向和数值。
这是别人说的 我有点不懂 真心初学者 望细心回答
1 堆区间是什么?
2 比如偏移址是4个十六进制,那么一个段地址所能容纳的数据就是2^16bytes 为什么是2^16? 展开
2)写法不同而已,malloc (sizeof_t *n),calloc (sizeof_t t,sizeof_n)结果是一样的,但是realloc则可能涉及到内容复制,所以尽可能少用。使用alloc函数后要记得free,避免memory leak
3)有,测试方法:printf ("%p",NULL),但是他不属于任何类型,不能试图改变NULL的指向和数值。
这是别人说的 我有点不懂 真心初学者 望细心回答
1 堆区间是什么?
2 比如偏移址是4个十六进制,那么一个段地址所能容纳的数据就是2^16bytes 为什么是2^16? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询