目前本站已有 十几万 份求职资料啦!


网游公司的笔试题大集合

10-15 23:59:20 来源:http://www.qz26.com 笔试题目   阅读:8663
导读:Subclass(char * className) : Base(className){}};int main(){Base *pBase = new Subclass("test");Base::print(*pBase);//用后会被释放掉,下面的指向将为空指针,应改为引用 printf("name: %s\n", pBase->getName());char *temp = pBase->copyName();printf("new name: %s\n", temp);delete temp;return 0;}5.一个自定义类String的改错题。6.void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");print
网游公司的笔试题大集合,标签:银行笔试题目,企业笔试题目,http://www.qz26.com
Subclass(char * className) : Base(className)
{
}
};
int main()
{
Base *pBase = new Subclass("test");
Base::print(*pBase);//用后会被释放掉,下面的指向将为空指针,应改为引用
printf("name: %s\n", pBase->getName());
char *temp = pBase->copyName();
printf("new name: %s\n", temp);
delete temp;
return 0;
}

5.一个自定义类String的改错题。
6.void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}

请问运行Test函数会有什么样的结果?
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str 仍然为 NULL
strcpy(str, "hello"); // 运行错误
}
示例7-4-1 试图用指针参数申请动态内存
毛病出在函数GetMemory中。编译器总是要为函数的每个参数制作临时副本,指针参数p的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p的内容,就导致参数p的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p申请了新的内存,只是把_p所指的内存地址改变了,但是p丝毫未变。所以函数GetMemory并不能输出任何东西。事实上,每执行一次GetMemory就会泄露一块内存,因为没有用free释放内存。
如果非得要用指针参数去申请内存,那么应该改用“指向指针的指针”,见示例7-4-2。
void GetMemory2(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}
void Test2(void)
{
char *str = NULL;
GetMemory2(&str, 100); // 注意参数是 &str,而不是str
strcpy(str, "hello");
cout<< str << endl;
free(str);
}
7.int i;
std::list list1;
for(i = 0; i < 8; i++)
list1.push_back(i);
for(std::list::iterator = list1.begin(); iterator != list1.end(); iterator++)
if (*iterator % 2)
list1.erase(iterator);
这段代码在运行时会产生什么错误,怎么改正。
erase之后iterator失效
就加一个 <int>就完了。
#include <list>
int main()
{
std::list<int> list1;
for(int i=0;i < 8;i++)
list1.push_back(i);
for(std::list<int>::iterator it=list1.begin();it!=list1.end();++it)
{
if(*it%2 == 0)
{
it = list1.erase(it);
it --;
}
}
return 0;
}
8.对Gcc编译选项做些介绍。
9.Gdb中如何设置中断点,逐步调试程序。
10.游戏编程中如何对显存进行管理。//这是唯一的一道和游戏直接有关题目。
11.windows中的内存分配方式有哪些,他们的优缺点是什么。

上一页  [1] [2] 


Tag:笔试题目银行笔试题目,企业笔试题目求职笔试面试 - 笔试题目
【字号: 】 【打印】 【关闭
《网游公司的笔试题大集合》相关文章
最新更新
推荐热门
联系我们 | 网站地图 | 财务资料 | 范文大全 | 求职简历 | 财会考试 | 成功励志
Copyright 二六求职资料网 All Right Reserved.
1 2 3 4 5 6 7 8 9 10