char*getmemory(void) { char p[]=”hello world”; return p; } void test(void) { char *str

题目

char*getmemory(void)

{ char p[]=”hello world”;

return p;

}

void test(void)

{

char *str=null;

str=Getmemory();

printf(str);

} 请问运行 Test 函数会有什么样的结果.

参考答案和解析
正确答案:
 
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

35、以下程序的运行结果是___________。 void print(char *s){ printf("%s", s); } int main(){ char *p, *q; char str[]="Hello, World\n"; q=p=str; p++; printf(q); printf(p); return 0; }

A.H e

B.Hello, World ello, World

C.Hello, World Hello, World

D.ello, World llo, World


x=3

第2题:

分析下面的程序,指出程序中的错误: # include <stdio.h> int main(void) { char a; char *str=&a; strcpy(str,"hello"); printf("%sn",str); return 0; }


342错了,字节数据最大是255

第3题:

下面的程序各自独立,请问执行下面的四个TestMemory 函数各有什么样的结果?

①void GetMemory(char * p)

{

p = (char * )malloc(100);

}

void TestMemory (void)

{

char *str = NULL;

GetMemory (str);

strcpy(str, "hello world");

prinff(str);

}

② char * GetMemory (void)

{

char p[ ] = "hello world";

return p;

}

void TestMemory (void)

{

char * str = NULL;

str = GetMemory( );

printf(str);

}

③void GetMemory(char * * p, int num)

{

* p = (char * )malloc(num);

}

void TestMemory (void)

{

char * str = NULL;

GetMemory(&str, 100);

strcpy( str, "hello" );

printf(sir);

}

④void TestMemory (void)

{

char *str = (char * )malloe(100);

strepy (str, "hello" );

free ( str );

if(str ! = NULL)

{

strepy( str, "world" );

printf(str);

}

}


正确答案:程序1程序崩溃。因为GetMemory并不能传递动态内存TestMemory函数中的str一直都是 NULL。strcpy(str “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针该指针的地址不是 NULL但其原来的内容已经被清除新内容不可知。 程序3能够输出hello但是会发生内存泄漏。 程序4篡改动态内存区的内容后果难以预料非常危险。因为free(str);之后str成为野指针if(str!=NULL)语句不起作用。
程序1程序崩溃。因为GetMemory并不能传递动态内存,TestMemory函数中的str一直都是 NULL。strcpy(str, “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原来的内容已经被清除,新内容不可知。 程序3能够输出hello,但是会发生内存泄漏。 程序4篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str!=NULL)语句不起作用。

第4题:

void Test(void){char *str = (char *)

malloc(100); strcpy(str, “hello”); free(str); if(str != NULL) { strcpy(str, “

world”); printf(str);}}请问运行 Test 函数会有什么样的结果?


正确答案:
 

第5题:

Void GetMemory2(char **p, int num){*p = (char *)malloc(num);}void

Test(void){char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello"); printf(str); }请问

运行Test 函数会有什么样的结果?


正确答案:
 

第6题:

char *GetMemory(void){ char p[] = "hello world";return

p; }void Test(void){char *str = NULL;str = GetMemory(); printf(str);}请问运行 Tes

t 函数会有什么样的结果?


正确答案:
 

第7题:

void GetMemory(char *p){p = (char *)malloc(100);}void Test(void) {char *str

= NULL;GetMemory(str); strcpy(str, "hello world");printf(str);}请问运行 Test 函数

会有什么样的结果?


正确答案:
 

第8题:

有关内存的思考题

1. void getmemory(char *p)

{ p=(char*)mallol(100);

}

void test(void)

{

char * str =null;

getmemory(str);

strcpy(str,”hello,world”);

printf(str);

}

请问运行 Test 函数会有什么样的结果


正确答案:
 

第9题:

void setmemory(char **p, int num)

{ *p=(char *) malloc(num);}

void test(void)

{ char *str=NULL;

getmemory(&str,100);

strcpy(str,"hello");

printf(str);

}

运行test函数有什么结果?( )


正确答案: