低层级GPU虚拟内存管理引论 Introducing Low-Level GPU Virtual Memory Management CUDA应用程序越来越需要尽可能快速高效地管理内存。在CUDA 10.2之前,开发人员可用的选项数量仅限于CUDA提供的类似malloc的抽象。 CUDA10.2为虚 ...
分类:
其他好文 时间:
2020-06-22 12:50:43
阅读次数:
52
归并排序采用了分治法的原理,将原先完整的数组拆分成一个一个的单独数组,然后再通过将这些单独的数组一一进行大小比较,汇聚成一个个较大的数组,最后再汇聚成一个完整的数组 这个地方需要说明的是:merge就是汇聚的过程,而mergeSort就是分治法的体现 代码可以进一步的优化,抽时间再解决吧 #incl ...
分类:
编程语言 时间:
2020-06-22 01:42:11
阅读次数:
73
#include<stdio.h> #include<malloc.h> typedef char ElemType; typedef struct DNode { ElemType data; struct DNode *prior; struct DNode *next; }DNode,*DLi ...
分类:
其他好文 时间:
2020-06-19 21:12:34
阅读次数:
57
1 问题的由来 环境:在LeetCode中,使用C++编程。 在创建链表时,使用malloc为节点分配内存,可最后报错,如下图所示。 错误原因:分配内存和释放内存不匹配。 2 解决方法 使用new来为节点分配内存。 new的使用方法如下所示: struct ListNode* p_head; p_h ...
分类:
其他好文 时间:
2020-06-18 21:12:27
阅读次数:
56
实际上,这是一个编译时选项。默认会使用内部的 slab 分配器。您确实确实应该 使用内建的 slab 分配器。最早的时候,memcached 只使用 malloc/free 来管理 内存。然而,这种方式不能与 OS 的内存管理以前很好地工作。反复地 malloc/free 造成了内存碎片,OS 最终 ...
分类:
系统相关 时间:
2020-06-18 11:02:57
阅读次数:
55
今天看到一个问题,我们怎么确定printf中的可变参数。 这样,我们先从汇编的角度去理解一个东西,栈 char *p = (char*)malloc(256 << 20) + (256 << 20); __asm__ volatile("movl %0, %%rsp\n", "r"(p)); 这段代 ...
分类:
编程语言 时间:
2020-06-16 23:15:06
阅读次数:
89
1、堆的定义 堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针。 堆就是利用完全二叉树的结构来维护的一维数组。 创建一个堆除了一个简单的一维数组以外,不需要任何额外的空间。 如果我们不允许使用指针,那么我们怎么知道哪一个节点是父节点,哪一个节点是它的子节点呢?节点在数组中的位置index 和 ...
分类:
编程语言 时间:
2020-06-15 21:13:23
阅读次数:
94
###ctf-wiki | 栗子1 gcc -g -o test test.c gdb ./test list #回车 查看源代码 一次显示10源代码 b 11 #在11行下断点 对于chunk结构的解析 逐次释放堆,观察对应的内存变化 释放chunk1,内存无变化 接着释放chunk2,内存映射如 ...
分类:
其他好文 时间:
2020-06-15 15:31:06
阅读次数:
48
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 typedef struct Node//结构体 6 { 7 char data; 8 struct Node *LChild; 9 struct Node *RChi ...
分类:
其他好文 时间:
2020-06-14 16:27:40
阅读次数:
221
1 #include <stdio.h> 2 #include <malloc.h> 3 typedef struct lianbiao *ptr; 4 struct lianbiao 5 { 6 int data; 7 ptr next; 8 }; 9 10 int main(void) 11 { ...
分类:
其他好文 时间:
2020-06-14 01:00:09
阅读次数:
64