摘要:
void *memcpy(void *des, void *src, int count) { assert(des!=NULL||src!=NULL); char *d = (char*)des; char *s = (char*)src; while(count--) { *d++=*s++; 阅读全文
摘要:
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句 阅读全文
摘要:
stl提供了三个最基本的容器:vector,list,deque。vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时, 阅读全文
摘要:
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib. 阅读全文
摘要:
int main() { fork(); fork(); printf("abc\n"); return 0; } 上述程序输出几个abc 答案:四个abc 原因是:fork调用一次,返回两次,一次返回等于0是子进程,一次返回大于0是父进程。 阅读全文
摘要:
sds-simple dynamic string简单的动态数组 1、sds定义 2、与c字符串比较 3、sds特性 1)获取长度时间复杂度为O(1) sds中有len长度字段 2)缓冲器不会溢出 首先sds有预留空闲free存储空间 其次如果空间不够,会动态申请 3)修改字符串最多需要执行N次内存 阅读全文