我有一个值,我们称之为v
,Type i8**
指向数组的第一个元素。如果我想获取数组第一个元素的变量值,我可以使用 Builder.CreateLoad(v);
.如果我想获取数组的第二个元素,是否有类似于CreateLoad()
命令的命令,但带有偏移量?
我尝试向v
添加一个整数,但它不起作用(出于一些明显的原因我不知道(。我也尝试使用 Builder.CreateGEP(v, Vector<Value *>{ c64(0), c64(1) });
,但它也不起作用(c64
创建一个常量(。
你能帮忙吗?
所以我找到了解决方案。如果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 常量(