阵列引用 - 页 3 1234567 新评论 TheXpert 2012.11.21 18:06 #21 我的天啊,这个结构的大小 --struct ArrayStore { long reserved; double x[]; };60个字节),但这太疯狂了。这有52个字节需要解读。如果你有兴趣,这里是用于挖掘的初始代码#import "msvcrt.dll" long memcpy(long &dst, long &src, int cnt); long memcpy(uchar &dst[], long &src, int cnt); #import struct ArrayStore { long reserved; double x[]; }; #define N 60 // sizeof(ArrayStore) == 60 void OnStart() { ArrayStore store; ArrayResize(store.x, 0x11, 0x22); store.reserved = 0xFF; uchar array[N]; ArrayInitialize(array, 0); memcpy(array, store.reserved, N); string s; for (int i = 0; i < N; i++) { s = s + " " + StringFormat("%.2X", array[i]); } Print(s); } --- 2012.11.21 18:39 #22 ArrayStore::double x[]; 我不明白这个参数的要点... Vladimir Gomonov 2012.11.21 19:47 #23 sergeev: 我不明白这个参数的要点...如何获得数组中 第一个元素 的地址。 long ArrPtr = memcpy(Arr[0], Arr[0], 1);不起作用? --- 2012.11.21 19:50 #24 MetaDriver:获取一个数组的 第一个元素 的地址呢。 long ArrPtr = memcpy(Arr[0], Arr[0], 1);不起作用?当然,作品。但我还是不明白为什么 ArrayStore::double x[]; Vladimir Gomonov 2012.11.21 19:57 #25 sergeev:当然,它是有效的。但我仍然不明白为什么 我也不明白这一点。:) TheXpert 2012.11.21 21:43 #26 MetaDriver: 我也不明白。:)来吧。让我再次重复这个任务。用相对于时间序列大小的时间O(1)对其进行参考。也就是说,先验地禁止复制阵列。唯一的方法是获取数组结构。所以,强迫用时间序列指针代替数组指针,再加上一些参数,使结构认为它是可以的。数组结构的大小 是52个字节,其中8个(估计)实际上是一个指针,其余的是设置,如大小、储备、AsSeries属性等。(Win7x64)现在的任务是解开结构,学习如何滑出足够的数据。 Документация по MQL5: Основы языка / Операции и выражения / Другие операции www.mql5.com Основы языка / Операции и выражения / Другие операции - Документация по MQL5 TheXpert 2012.11.21 21:46 #27 sergeev:当然,作品。 这当然有效,但这样我们得到的是一个 数据的指针,我们不能替换指针,我们只能替换数据,所以......。我们需要更深入地了解 (C) --- 2012.11.21 22:07 #28 要么就是我不明白需要什么。在第一个帖子中,你设置了问题。某种数组的引用,像这样。我向你展示了memcpy成功地获得了一个 指向数组的指针。然后使用同样的memcpy并获得数据。那么,你真正需要的是什么? 为什么你要在这里建立某种结构? 它与一个数组的指针有什么关系? TheXpert 2012.11.21 22:32 #29 sergeev:然后使用memcpy并检索数据。慢慢地。所有的dll函数都是通过一个包装器来调用的。 我需要一个没有复制的正常数组。看看第一个帖子。它有一个非常精确的代码,准确地说出了我想要的东西。 Алексей Тарабанов 2012.11.21 23:02 #30 TheXpert:慢慢地。所有的dll函数都是通过一个包装器来调用的。 我需要一个没有复制的正常数组。看看第一个帖子。有一个非常精确的代码,说的正是我想要的东西。这很简单:)在《四重奏》中做一个完整的时间序列阵列(你的是第九个),金钥匙就在你的口袋里:)他们会给你一个耳光的,我认为。你不能黑掉这头神圣的牛。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我的天啊,这个结构的大小 --
60个字节),但这太疯狂了。这有52个字节需要解读。
如果你有兴趣,这里是用于挖掘的初始代码
ArrayStore::double x[];
我不明白这个参数的要点...我不明白这个参数的要点...
如何获得数组中 第一个元素 的地址。
long ArrPtr = memcpy(Arr[0], Arr[0], 1);
不起作用?
获取一个数组的 第一个元素 的地址呢。
long ArrPtr = memcpy(Arr[0], Arr[0], 1);
不起作用?
当然,作品。
但我还是不明白为什么
ArrayStore::double x[];
当然,它是有效的。
但我仍然不明白为什么
我也不明白。:)
来吧。
让我再次重复这个任务。用相对于时间序列大小的时间O(1)对其进行参考。也就是说,先验地禁止复制阵列。
唯一的方法是获取数组结构。所以,强迫用时间序列指针代替数组指针,再加上一些参数,使结构认为它是可以的。
数组结构的大小 是52个字节,其中8个(估计)实际上是一个指针,其余的是设置,如大小、储备、AsSeries属性等。(Win7x64)
现在的任务是解开结构,学习如何滑出足够的数据。
当然,作品。
要么就是我不明白需要什么。
在第一个帖子中,你设置了问题。
我向你展示了memcpy成功地获得了一个 指向数组的指针。
然后使用同样的memcpy并获得数据。
那么,你真正需要的是什么? 为什么你要在这里建立某种结构? 它与一个数组的指针有什么关系?
然后使用memcpy并检索数据。
慢慢地。所有的dll函数都是通过一个包装器来调用的。
我需要一个没有复制的正常数组。
看看第一个帖子。它有一个非常精确的代码,准确地说出了我想要的东西。
慢慢地。所有的dll函数都是通过一个包装器来调用的。
我需要一个没有复制的正常数组。
看看第一个帖子。有一个非常精确的代码,说的正是我想要的东西。
这很简单:)在《四重奏》中做一个完整的时间序列阵列(你的是第九个),金钥匙就在你的口袋里:)
他们会给你一个耳光的,我认为。你不能黑掉这头神圣的牛。