实际环境中是要调用一个DLL函数,其中的一个参数是二维数组。我原先的代码如下:var
a: array of array of Char;
begin
SetLength(a, 50, 128); //发现这样会有问题。而直接使用a: array [0..49, 0..127] of Char;或使用GetMemory()方法不会有问题。
end;
我的分析是SetLength()分配的内存是不连续。不知有更方便的办法没。谢谢。
a: array of array of Char;
begin
SetLength(a, 50, 128); //发现这样会有问题。而直接使用a: array [0..49, 0..127] of Char;或使用GetMemory()方法不会有问题。
end;
我的分析是SetLength()分配的内存是不连续。不知有更方便的办法没。谢谢。
解决方案 »
- 关于将Filter集成到.exe文件中,记得DSPack有个demo。
- 非常新颖的一个问题:通过地图来了解全国销售情况!
- 如何获得当前打印机的状态?如未连机,缺纸, 打印机出错等, 在XP和2000下使用.
- 谁有李维的书?????
- sql小问题
- 点对点文件传输中客户端接收进度条怎样显示?
- 请问用用语言是什么,有要求么?
- delphi 如何设置导出到Excel某一单元格(一整行也可以)不自动换行,
- 请问tstream里的东西是ascii码还是二进制码?
- delphi中怎样使用gif图形,用image组件好像不行?
- delphi 导出excel时,怎么左对齐啊
- delphi7 安装teechart8出错了!
只是lz的数组有点特别,他是一个多维的动态数组,setlength是delphi优化的,他针对这种数组类型可能并不保证内存连续,因为数组是通过下标访问的而不是指针。