GetMemory的详解
来源:互联网 发布:js判断是否显示 编辑:程序博客网 时间:2024/05/18 04:34
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
请问运行Test函数会有什么样的结果?
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
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函数会有什么样的结果?
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
请问运行Test函数会有什么样的结果?
---------
1、
答:程序崩溃。
因为GetMemory并不能传递动态内存,
Test函数中的 str一直都是 NULL。
strcpy(str, "hello world");将使程序崩溃。
2、
答:可能是乱码。
因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
3、
答:
(1)能够输出hello
(2)内存泄漏
4、
答:篡改动态内存区的内容,后果难以预料,非常危险。
因为free(str);之后,str成为野指针,
if(str != NULL)语句不起作用。
参考资料:你要这方面的书的话,可以是 高质量c++编程指南
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
请问运行Test函数会有什么样的结果?
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
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函数会有什么样的结果?
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
请问运行Test函数会有什么样的结果?
---------
1、
答:程序崩溃。
因为GetMemory并不能传递动态内存,
Test函数中的 str一直都是 NULL。
strcpy(str, "hello world");将使程序崩溃。
2、
答:可能是乱码。
因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
3、
答:
(1)能够输出hello
(2)内存泄漏
4、
答:篡改动态内存区的内容,后果难以预料,非常危险。
因为free(str);之后,str成为野指针,
if(str != NULL)语句不起作用。
参考资料:你要这方面的书的话,可以是 高质量c++编程指南
- GetMemory的详解
- GetMemory的详解
- GetMemory的详解
- Getmemory函数详解--内存操作的理解
- Getmemory函数详解--内存操作的理解
- GetMemory函数详解
- GetMemory函数详解
- GetMemory函数详解
- GetMemory函数详解
- GetMemory的典型例子
- GetMemory的典型例子
- GetMemory的典型例子
- GetMemory的问题汇总
- GetMemory的典型例子
- GetMemory的典型例子
- GetMemory的典型例子
- GetMemory
- GetMemory
- Qt、ACE、Boost等C++著名程序库的比较和学习经验
- udp编程学习笔记(转)
- 指针再回首
- char *GetMemory3(int num)的问题
- 明晰C++内存分配的五种方法的区别
- GetMemory的详解
- C语言经典问答摘录
- malloc和calloc
- typedef与#define区别
- 符号^
- struct+spring+hibernate学习录像
- (转)Linux SHELL if 命令参数说明
- 《JAVASCRIPT语言精髓与编程实践》预读样章公开~
- 使用 StackTrace 获得更多跟 Exception 有关的信息