到底该申请多大的内存空间??
procedure TForm1.Button1Click(Sender: TObject); //把一个字符数组的内容拷贝到pchar变量中
var
p:pchar;
i:integer;
arrChar:array[0..19] of char;
begin
for i:=0 to 19 do
arrChar[i]:='a';
getmem(p,20);
CopyMemory(p, @arrChar[0], 20);
showmessage(strpas(p));
freemem(p);
end;
当上面的字符数组的长度是20的时候,拷贝后显示的p的内容有错误呀,最后会多个字符
但是我把字符数组的长度变成10后,也就是arrChar:array[0..9] of char;
申请的p的空间也相应减少,改后的程序如下:(显示的结果是正确的)。那到底要申请多少的空间呀?
procedure TForm1.Button1Click(Sender: TObject); //把一个字符数组的内容拷贝到pchar变量中
var
p:pchar;
i:integer;
arrChar:array[0..9] of char;
begin
for i:=0 to 9 do
arrChar[i]:='a';
getmem(p,10);
CopyMemory(p, @arrChar[0], 10);
showmessage(strpas(p));
freemem(p);
end;
另外一个问题,如果我用StrAlloc申请内存空间,又该申请多大呢?
var
p:pchar;
i:integer;
arrChar:array[0..19] of char;
begin
for i:=0 to 19 do
arrChar[i]:='a';
getmem(p,20);
CopyMemory(p, @arrChar[0], 20);
showmessage(strpas(p));
freemem(p);
end;
当上面的字符数组的长度是20的时候,拷贝后显示的p的内容有错误呀,最后会多个字符
但是我把字符数组的长度变成10后,也就是arrChar:array[0..9] of char;
申请的p的空间也相应减少,改后的程序如下:(显示的结果是正确的)。那到底要申请多少的空间呀?
procedure TForm1.Button1Click(Sender: TObject); //把一个字符数组的内容拷贝到pchar变量中
var
p:pchar;
i:integer;
arrChar:array[0..9] of char;
begin
for i:=0 to 9 do
arrChar[i]:='a';
getmem(p,10);
CopyMemory(p, @arrChar[0], 10);
showmessage(strpas(p));
freemem(p);
end;
另外一个问题,如果我用StrAlloc申请内存空间,又该申请多大呢?
...全文
相关推荐
C语言打开文件、判断大小、申请内存空间、初始化内存空间,复制读文件内容到内存空间带详细注解源代码
本篇文章是针对C语言编程初学者的一份详细教程,主要讲解了如何在C语言中打开文件、获取文件大小、申请内存空间并初始化内存空间,以及将文件内容读取到内存中。以下是对这些关键知识点的深入解析:1. 打开
易语言-申请远程进程内存空间易语言模块
本文将深入探讨易语言中的"申请远程进程内存空间"这一概念,并结合易语言模块源码进行详细解析。首先,我们要理解什么是易语言。
Linux中进程创建和内存空间申请
在Linux操作系统中,进程创建和内存空间申请是两个核心概念,它们构成了系统运行的基础。本文将深入探讨这两个主题,特别是进程0如何创建新的进程以及内存管理的机制。首先,让我们聚焦于进程创建。
大创完全模板,有申请立项到完全立项的所有文件
【大创完全模板】是一个全面的资源包,旨在帮助用户高效地完成从申请立项到完全立项的全过程。
python 申请内存空间,用于创建多维数组的实例
本文档主要介绍了在Python中申请内存空间以创建多维数组的过程。首先,通过Python的列表(list)来构建多维数组时,作者以三维数组为例,展示了如何逐级分配内存。通过`[None]*d1`这样的


语言基础/算法/系统设计
