background image

}
#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()