1)下列程序片段运行时间排序
代码1:
for(uint i = 0;i<1024;++i)
{
char* url = (char*)malloc(4096);
memset(url,0x0,4096);
free(url);
}
代码2:
for(uint i = 0;i<1024;++i)
{
char* url = (char*)malloc(4096);
free(url);
}
代码3:
char* url = (char*)malloc(4096);
for(uint i = 0;i<1024;++i)
{
memset(url,0x0,4096);
}
free(url);
代码4:
for(uint i = 0;i<10*1024;++i)
{
char* url = (char*)malloc(4096);
free(url);
}
给出你认为的代码耗时排序?
void to_upper(char* s,char* buffer)
{
buffer =(char*)malloc((strlen(s)+1)*sizeof(char));
memset(buffer,0x0,strlen(s)+1);
for(uint32_t i = strlen(s)-1;i>=0;--i)
{
unsigned char t = s[i] - 'a';
buffer[i] = s[i] +('A'-'a')*(t<='z'-'a'?1:0);
}
}
int main(void)
{
char string[] = "123 , goodmorning { ABC";
char* buffer = NULL;
to_upper(string,buffer);
cout<<buffer<<endl;
free(buffer);
}
char *ret = dst;
while ((*dst++ = *src++));
return ret;
}
struct s_nopadding{
char a;
char b;
char c;
};
struct s_withpadding{
char a;
char b;
char c;
char padding;
};
5) 第三题中的结构体中,如果定义s_nopadding t[1024];,则sizeof(t)是1024*3还是1024*4?
6)请问下面这段代码这样写的好处?
typedef void(*pattern_fun)(uint32_t* code,uint32_t* data,size_t n);
pattern_fun PACK[]={PACK0,PACK1,PACK2,PACK3};
void PACK0(uint32_t* code,uint32_t* data,size_t n) //PACK1,PACK2,PACK3均类似,直接返回。
{
return;
}
int main
{
XXXX //一些初始化code,data,n的代码
for(int i = 0;i<4096;++i)
{
PACK[i%4](code,data,n);
XXXX // 一些后续代码
}
}
7)什么是稳定的排序,举一个使用稳定排序的例子?
for (char_ptr = str; ((unsigned long int) char_ptr & (sizeof (PACKET) - 1)) != 0; ++char_ptr)