我有一个[(1, 'a'), (2, 'a'), (3, 'a'), (4, 'a'), (3, 'a'), (4, 'a')]
的值v
,它指向数组的第一个元素。如果要获取作为数组第一个元素的变量的值,则可以使用Type i8**
。如果我想获取数组的第二个元素,是否有一个像Builder.CreateLoad(v);
这样的命令,但是有一个偏移量?
我尝试将整数添加到CreateLoad()
中,但是它没有用(出于某些显而易见的原因,我不知道)。我也尝试过使用v
,但是它也不起作用(Builder.CreateGEP(v, Vector<Value *>{ c64(0), c64(1) });
创建一个常量)。
你能帮忙吗?
答案 0 :(得分:0)
所以我找到了解决方案。如果v
是数组,则Builder.CreateGEP(v, Vector<Value *>{ c64(0), c64(5) })
正确加载v的第6个元素。如果v是指向矩阵(i8 **)的指针,那么对我有用的是:
Builder.CreateGEP(Builder.CreateLoad(p.first), c64(5))
,可以正确加载v
指向的数组的第6个元素。
(函数c64()
创建一个64位的int常量)