Getmemory函数问题
2016-03-07 17:02
260 查看
有关内存的程序问题
(1)
程序崩溃,由于GetMemory采用值传递,p的值没有使void中的str变化
(2)
程序乱码
(3)
可以输出bit C++,但是内存泄露,应该free(str);
(4)
free(str)之后str变成野指针,并没有置空,if语句不起作用
(1)
void GetMemory(char*p) { p = (char*)malloc(57); } void main() { char*str = NULL; GetMemory(str); strcpy(str, "bit C++"); printf(str); }
程序崩溃,由于GetMemory采用值传递,p的值没有使void中的str变化
(2)
char*GetMemory(void) { char p[]="bit C++"; return p;//返回p的首地址 } void main() { char*str = NULL; str = GetMemory; printf(str); }
程序乱码
(3)
char GetMemory(char**p) { *p=(char*)malloc(57); } void main() { char*str = NULL; GetMemory(&str); strcpy(str, "bit C++"); printf(str); }
可以输出bit C++,但是内存泄露,应该free(str);
(4)
void main() { char *str = (char*)malloc(57); strcpy(str, "bit"); free(str); if (str != NULL) { strcpy(str, "C++"); printf(str); } }
free(str)之后str变成野指针,并没有置空,if语句不起作用
相关文章推荐
- GetMemory函数详解
- GetMemory详解
- 谈谈MySQL的函数问题!
- Can't locate ExtUtils/MakeMaker.pm in @INC
- Java线程面试题 Top 50
- 怎样拷贝数组的数据
- 判断回文字符串
- Android开发入门与实践(第2版)
- sql注入入门
- iOS 点击远程通知消息,如何跳转到指定页面(控制器)
- GIT 命令行整理
- 父窗口调用iframe子窗口方法
- Linux中$#,$@,$0,$1,$2,$*,$$,$?变量的含义
- Win10输入法怎么调整成Win7模式 Win10输入法调整成Win7模式方法攻略
- elk 收藏
- 一个正整数各位之和
- 120.View the Exhibits and examine the structures of the PRODUCTS, SALES, and CUSTOMERS
- ReentrantLock的使用
- JavaScript之web通信
- 电脑开机密码忘了怎么办