博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode用户分组C
阅读量:3967 次
发布时间:2019-05-24

本文共 1753 字,大约阅读时间需要 5 分钟。

网上摘的补充知识:C中malloc函数

malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

malloc 向系统申请分配指定size个字节的内存空间(连续的一块内存)。返回类型是 void* 类型。void* 表示未确定类型的指针。

void 可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据,C,C++规定,void 类型可以强制转换为任何其它类型的指针。

allocates a block of size bytes of memory, returning a pointer to the beginning of the block.

如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。

比如想分配100个int类型的空间:int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100个整数的内存空间。

以下是借鉴代码

```cppint** groupThePeople(int* groupSizes, int groupSizesSize, int* returnSize, int** returnColumnSizes){
int **ret = NULL; int tmp[500][500] = {
0}; int tmpnum[500] = {
0}; int i; int k; int n; *returnSize = 0; if (groupSizesSize == 0) {
return NULL; } for (i = 0; i < groupSizesSize; i++) {
k = groupSizes[i] - 1; if (k < 0 || k >= 500) {
continue; // 异常保护 } tmp[k][tmpnum[k]] = i; tmpnum[k]++; } ret = malloc(sizeof(int *) * groupSizesSize); (*returnColumnSizes) = malloc(sizeof(int) * groupSizesSize); for (i = 0; i < 500; i++) {
n = 0; while (tmpnum[i] > i) {
ret[*returnSize] = malloc(sizeof(int) *(i + 1)); (*returnColumnSizes)[*returnSize] = i + 1; for (k = 0;k <= i; k++) {
ret[*returnSize][k] = tmp[i][n]; n++; tmpnum[i]--; } (*returnSize)++; } } return ret;}
  • List item
    最令人拍案叫绝的便是malloc的运用可以解决我一直纠结的内数组内部个数问题
    特别是19行代码体会出我当时的无奈

这整个流程反复进行数组套用,指针化用,对我这个小白起到了不小的作用。

略加调整,交了一下(整体把控需要复习)
(电脑版看着舒服哈哈哈)
结果没有他吹得牛逼2333
另外的总结:
限制条件保护程序
NULL限制
建立辅助数组-num,-column等
数组嵌套
整个设计太巧妙了woc

转载地址:http://tpcki.baihongyu.com/

你可能感兴趣的文章
P4-c++函数详解-04函数重载,函数模板和函数模板重载,编译器选择使用哪个函数版本?
查看>>
P5-c++内存模型和名称空间-01头文件相关
查看>>
P6-c++内存模型和名称空间-02存储连续性、作用域和链接性
查看>>
P9-c++对象和类-02构造函数和析构函数总结
查看>>
P10-c++对象和类-03this指针详细介绍,详细的例子演示
查看>>
ksh 命令分隔符
查看>>
sed 精萃
查看>>
awk 精萃
查看>>
awk 注释
查看>>
GROUPING SETS、ROLLUP、CUBE
查看>>
数据类型和变量
查看>>
表连接(JOIN)
查看>>
游标(Cursor)
查看>>
复合语句(compound statement)
查看>>
DB2 物化查询表
查看>>
IF 语句
查看>>
循环语句
查看>>
DB2 临时表
查看>>
ITERATE、LEAVE、GOTO和RETURN
查看>>
异常处理
查看>>