}
#include <stdio.h>
#include <string.h>
char * GetName (void)
{
//To return “MSR Asia” String
//char name[]="MSR Asia"; (1)
char *name=(char *)malloc(strlen("MSR Asia")+1); strcpy(name,"MSR Asia");
return name;
}
void main(int argc, char* argv[])
{
char name[32];
//Fill in zeros into name
for(int i=0;i<=32;i++)
{
name[i]='\0';
}
//copy “Welcome” to name
//name="Welcome"; (2)
strcat(name,"Welcome ");
//Append a blank char
//name[8]=' '; (3)
//Append string to name
char *p=GetName(); (4)
strcat(name,p);
free (p);
//print out
printf(name);
}
(1)在函数内部定义的变量在函数结束时就清空了,必须动态分配内存
(2)字符串赋值语句错误,应该用 strcat
(3)该语句无效,可去掉
(4)定义一个指针指向动态分配的内存,用完后需用 free 语句释放
3、写出下面程序的输出结果
#include <stdio.h>
class A
{
public:
void FuncA()
{
printf("FuncA called\n");
}
virtual void FuncB()