New delete 与malloc free 的联系与区别?
第4题
找错:
#include <string.h>
#include <stdio.h>
class Base
{
private:
char * name;
public:
Base(char * className)
{
name = new char[strlen(className)];
strcpy(name, className);
}
~Base()
{
delete name;
}
char * copyName()
{
char newname [256];
strcpy(newname, name);
return newname;
}
char * getName()
{
return name;
37
}
static void print(Base base)
{
printf("name: %s\n" , base.name);
}
};
class Subclass : public Base
{
public:
Subclass(char * className) : Base(className)
{
}
};
int main()
{
Base * pBase = new Subclass("test");
Base::print(*pBase);
printf("name: %s\n", pBase->getName());
printf("new name: %s\n", pBase->copyName());
return 0;
}
第5题
程序改错
class mml
{
private:
static unsigned int x;
public:
mml(){ x++; }
mml(static unsigned int &) {x++;}
~mml{x--;}
pulic:
virtual mon() {} = 0;
static unsigned int mmc(){return x;}
......
};
class nnl:public mml
{
private:
static unsigned int y;
public:
nnl(){ x++; }
nnl(static unsigned int &) {x++;}
~nnl{x--;}
public:
virtual mon() {};
static unsigned int nnc(){return y;}
......
};
代码片断:
mml* pp = new nnl;
..........
delete pp;
第6题
A. Object o=new Button(" A" );
B. Button b=new 0bject(" B" );
C. Panel p=newFrame() ;
D. Fram
E. f=new Pane10;
第7题
A.float f[l0]=new float[6][6];
B. float [fD=new float[6][6];
C. float fD[]=new float][6];
D. float 0[f=new float[6][;
第8题
A.render
B.professional
C.indifferent
D.indebted
E.regarding
F.concernG、fascinateH、pursueI、favorableJ、the case
第9题
试题7:
void Test(void )
{
char *str = (char *) malloc(100 );
strcpy(str, "hello" );
free(str );
... //省略的其它语句
}
第10题
试题6:
void GetMemory(char **p, int num )
{
*p = (char *) malloc(num );
}
void Test(void )
{
char *str = NULL;
GetMemory(&str, 100 );
strcpy(str, "hello" );
printf(str );