一道指针内存题目的三个改法
来源:互联网 发布:三星scx3401扫描软件 编辑:程序博客网 时间:2024/06/01 21:57
原来的题目为
GetMemory(char *p)
{
p=(char *)malloc(100);
}
main()
{
char *str=NULL;
GetMemory(str);
strcpy(str, "hello ");
printf(str);
}
可以返回新申请内存的地址.改法如下:
unsigned int GetMemory(char *p)
{
p=(char *)malloc(100);
return (unsigned int)&p;
}
main()
{
char *str=NULL;
unsigned int addr;
addr=GetMemory(str);
str = (char*)*( (unsigned int *)addr );
strcpy(str, "hello ");
printf(str);
free(str);
str=NULL;
}
也可以用指针引用.改法如下:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void GetMemory(char * &p)
{
p=(char *)malloc(100);
}
void main()
{
char *str=NULL;
GetMemory(str);
strcpy(str, "hello ");
printf(str);
printf("%x",str);
free(str);
str=NULL;
//rintf("%x",str);
}
还可以用指向指针的指针.改法如下:
void GetMemory(char ** p)
{
*p=(char *)malloc(100);
}
void main()
{
char *str=NULL;
GetMemory(&str);
strcpy(str, "hello ");
printf(str);
free(str);
str=NULL;
}
- 一道指针内存题目的三个改法
- 关于指针加减的一道题目
- 一道指针相关题目的跟踪
- 一道关于编译和指针的题目
- 一道关于虚函数指针的题目
- 一道指针题目
- 一道C语言的内存管理题目
- 整数的内存表示---记录一道题目
- 内存对齐的一道面试题目
- 矩阵相乘 指针指针 网上看到的一道题目
- 20080306:上海华为的一道关于指针的编程题目
- 一道普通的面试一题目指针做参数
- 一道普通的面试一题目指针做参数
- 一道关于二维数组与指针的题目
- [Java]一道貌似简单的题目:输入三个整数,打印出和.
- 一道有趣的题目
- 一道用递规做的题目
- 经典的一道题目.
- Jakarta Struts 项目的介绍和它的支持组件
- LZ77源码阅读笔记
- ECC的代码实现
- 一道题目
- The Two Types of Programmers
- 一道指针内存题目的三个改法
- 悬浮窗 & 动态菜单 VC++
- php eval函数用法
- PHP效率优化
- javascript小技巧&&JavaScript[对象.属性]集锦 [转载]
- SQL常用语句整理(转)
- 改变人生的五句话
- Hibernate入门配置
- SQL数据库中工作日如何计算(转)