C 语言随笔记录

memcpy 函数

#include 
void * memcpy (void * dest, const void * src, size_t n);

  该函数从 src 地址起,开始拷贝 n 个字节的数据到 dest。若 dest 有数据,则覆盖。

char * target = (char*) malloc (sizeof(char)*N);
memcpy(target, "0123456789", sizeof(char)*N);
puts(target);
free(target);

puts 函数

#include 
int puts(const char *s)

  该函数只能输出字符串,其作用于printf("%s\n", s);相同。其中,s可以是一个字符指针变量、字符数组名,或直接是一个字符串常量,其功能是将字符串中输出到屏幕,直到遇到'\0'(字符串结束标志符)才会停止。

free 函数

  free 的次数要与 malloc 匹配,即次数相等。

  指针被 free 释放之后,指针变量本身并没有被删除,需要将指针 p 置为 NULL,从而杜绝非法使用;即防止其变成“野指针”。

  指针只是一个变量,只有程序结束后,才会被销毁。通过 free 函数释放内存空间后,指向这片空间的指针仍存在,只是其指向的这块内存是不合法的。

Map的比较

  使用std::greater(),从大到小排序

std::vector< std::pair > vec;
vec.resize(10);//这里假设已经赋值了,实际上没有
std::partial_sort(vec.begin(), vec.begin() + topk, vec.end(),
                      std::greater< std::pair >());

工程中输出到屏幕中
fprintf(stderr, "out's shape %d \n", 1000)

你可能感兴趣的:(C++基础)