我试图理解c代码(SimpleScalar,bpred.c),有件事让我很困惑:
int *shiftregs;
shiftregs = calloc(1, sizeof(int));
int l1index, l2index;
l1index = 0;
l2index = shiftregs[l1index];
我删除了一些可能没有帮助的代码。调用后,
calloc
变成指针数组?*shiftregs
的值是多少?谢谢! 最佳答案
因为shiftregs
是指向int
的指针,*shiftregs
是int
的指针。
因为calloc
保证它分配的内存被设置为0
,并且您已经分配了足够的内存来引用shiftregs[0]
,l2index
将是0
(假设calloc
没有失败并返回NULL
)。
关于c - 指针calloc函数是否返回指针 vector ? (C语言),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20110548/