本文整理自网络,侵删。
C 语言版
#include <stdio.h>#include <stdlib.h>
//结构体声明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; // ??造体へのポインタの定?x 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; // ??造体へのポインタの定?x 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.
相关阅读 >>
winapi 字符及字符串函数(11): lstrcpyn - 复制字符串, 同时指定要复制的长度
更多相关阅读请进入《Delphi》频道 >>