- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi结构,字符串和指针
C 语言版
#include
#include
//结构体声明
typedef struct {
int num;
char *str;
} strct;
int main(void) {
//生成指针类型变量
strct *entity;
//确保动态内存
entity = (strct*)malloc(sizeof(strct));
//初始化成员
entity->num = 0;
entity->str = (char*)malloc(sizeof(char) * 32);
//将一个字符串分配给内存
sprintf(entity->str, "%s %s!", "Hello", "World");
printf("%s\n", entity->str);
// 释放
free(entity->str);
free(entity);
return 0;
}
ANSI_Delphi版
program Project1;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
type
//结构体声明
Tstrct = record
num: Integer;
str: PChar;
end;
// 構造体へのポインタの定義
Pstrct = ^Tstrct;
var
entity: Pstrct;
begin
// メモリの確保
GetMem(entity, SizeOf(Tstrct));
//初始化成员
entity^.num := 0;
GetMem(entity^.str, SizeOf(Char) * 32);
//将一个字符串分配给内存
StrPCopy(entity^.str, Format('%s %s!', ['Hello', 'World']));
Writeln(entity^.str);
// 释放
FreeMem(entity^.str);
FreeMem(entity);
end.
Unicode_Delphi版
program Project1;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
System.AnsiStrings;
type
//结构体声明
Tstrct = record
num: Integer;
str: PAnsiChar;
end;
// 構造体へのポインタの定義
Pstrct = ^Tstrct;
var
// 構造体へのポインタの変数
entity: Pstrct; // [1]
begin
// メモリの確保
GetMem(entity, SizeOf(Tstrct)); // [2]
//初始化成员
entity^.num := 0; // [3]
GetMem(entity^.str, SizeOf(AnsiChar) * 32); // [4]
//将一个字符串分配给内存
System.AnsiStrings.StrPCopy(entity^.str, AnsiString(Format('%s %s!', ['Hello', 'World']))); // [5]
Writeln(entity^.str);
// 释放
FreeMem(entity^.str); // [6]
FreeMem(entity); // [7]
end.