想起以前有人讨论的一个问题,柔性数组。于是就记录一下:
在c语言中用得比较多吧,尤其在通信中用得多:
struct Buffer
{
int len;
char data[0];
};
其中的data是一个可变长度的数组,这主要是为了节约空间。可以根据需要发送的报文长度来决定数组的大小。例如要发送的报文长度为4096:
char *tmp = (char*)malloc(sizeof(Buffer)+4096);
Buffer *p = (Buffer*)tmp;
p->len = 1024;
memcpy(p.data,strData,1024);
删除时free(p)即可。
看到malloc又想起两个问题:
1.我要申请一个连续的大内存时要怎么做?(例如申请4G内存)
2.malloc的结构是怎么样的?
4.A星算法
5.大数据动态排序数据结构设计
6.日志记录系统(erl?)
7.红黑树,二叉平衡树。
8.linux下查看栈空间大小ulimit -s / ulimit -a
9.统计一个文件夹下文件与文件夹的个数(非递归)。