下面程序想打印“Welcome MSR Asia”,改正错误。
<stdio.h><stdio.h><string.h><string.h>char * GetName (void)
{
//To return “MSR Asia” String
char 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";
//Append a blank char
name[8]=" ";
//Append string to name
strcat(name,GetName());
//print out
printf(name);
}
</string.h></string.h></stdio.h></stdio.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); }