容易c
简单c
p=(int *)malloc(sizeof(int[10]));这个返回的是啥?详细讲解下,谢谢
------解决方案--------------------
------解决方案--------------------
malloc returns a void pointer to the allocated space, or NULL if there is insufficient memory available
------解决方案--------------------
C++不允许讲void* 赋值给任何非void* 指针,所以需要强制转换, 但是C则没有这种限制!
------解决方案--------------------
mallocs是C语言里面的一个动态分配内存的函数,原型是这样的:
void* malloc (size_t size);
size为要分配的空间大小,单位是字节。
如果分配成功则返回一个void类型的指针指向该内存的首地址,
一般会转换成自己需要的指针类型,比如
如果分配失败,则返回空。
p=(int *)malloc(sizeof(int[10]));这个返回的是啥?详细讲解下,谢谢
------解决方案--------------------
int size = sizeof(int[10]) ;//返回40
void *p = malloc(size);//分配一个40个BYTE的指针;
int *pn = (int*)p;//然后p指针转换成int*
//其实也就是pn指向一个可以容纳10个int的buffer.
------解决方案--------------------
malloc returns a void pointer to the allocated space, or NULL if there is insufficient memory available
------解决方案--------------------
C++不允许讲void* 赋值给任何非void* 指针,所以需要强制转换, 但是C则没有这种限制!
------解决方案--------------------
mallocs是C语言里面的一个动态分配内存的函数,原型是这样的:
void* malloc (size_t size);
size为要分配的空间大小,单位是字节。
如果分配成功则返回一个void类型的指针指向该内存的首地址,
一般会转换成自己需要的指针类型,比如
int * number = (int *)malloc(sizeof(int));
如果分配失败,则返回空。