文档章节

关于 GetMem 和 GetMemory 的区别 - 回复"下雨天2"

涂孟超
 涂孟超
发布于 2014/09/26 15:31
字数 173
阅读 7
收藏 0
问题来源: http://www.cnblogs.com/del/archive/2008/05/02/1179416.html#1179645

我觉得 GetMem 和 GetMemory 的功能是一样的, 有点类似与 Format 和 FmtStr 的关系;
它们的区别只在于参数位置和返回值的区别, 看看 GetMemory 函数的源码就知道, 它其实就是调用的 GetMem.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  p: PInteger;
begin
  GetMem(p, SizeOf(Integer));
  p^ := 100;
  ShowMessage(IntToStr(p^)); {100}
  FreeMem(p);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  p: PInteger;
begin
  p := GetMemory(SizeOf(Integer));
  p^ := 100;
  ShowMessage(IntToStr(p^)); {100}
  FreeMemory(p);
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/05/02/1179767.html

涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
关于动态内存传递的问题

void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100); // str 仍然为 NULL strcpy(str, "hello"); /......

云端的人
2013/10/30
346
7
C语言关于栈内存的释放

下面一个程序; char *GetMemory() { char p[]="hello word"; return p; } void Test(void) { char *str=NULL; str=GetMemory(); printf(str); } 上面的两个程序书上的解释是:GetMemory()返......

云端的人
2013/11/01
1K
8
你能写出一个正确的strcpy吗?

2.找错题   试题1: void test1() {  char string[10];  char* str1 = "0123456789";  strcpy( string, str1 ); }   试题2: void test2() {  char string[10], str1[10];  int i; ......

种地瓜
2015/11/04
262
0
Linux 条件变量 pthread_cond_signal及pthread_cond_wait

#include<pthread.h> #include<unistd.h> #include<stdio.h> #include<stdlib.h> pthreadmutext mutex = PTHREADMUTEXINITIALIZER;/静态初始化/ pthreadcondt cond = PTHREADCONDINITIALIZE......

romalin99
2011/09/16
226
0
突然脑子短路竟然不知道传指针是怎么回事儿了

void getMemory(char *p) { p = (char*) malloc(100);} /*与char* getMemory() { char *p = (char*) malloc(100); return p;} 不同*/ void test(){ char *ptr = NULL; getMemory(ptr); std......

莫肖
2012/10/20
435
8

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部