所以我有这个功能:
char *lookUpPageTable(char **array, int VPN)
{
if (array[VPN][0] == '1')
{
/*char **pageNumber = (char **)malloc(sizeof(char*)* 128);
for (int i = 0; i < strlen(array); i++)
{
pageNumber[i] = array[VPN][i];
}*/
return array[VPN]; //this returns the whole number which I dont want
}
else
{
return "Page Fault";
}
}
我作为参数传入的数组包含1 123456形式的数字列表,其中第一个数字是1或0,第二个数字是随机数。此函数检查阵列中索引VPN处的第一个数字。如果它为零,则应返回“Page Fault”字符串。如果是1,那么函数应该返回1之后的数字。
例如,如果我调用了lookUpPageTable(array,index)
该方法应该看看array [index] [0] =='1'
如果确实如此,则返回数组[index]
中的剩余数字否则
返回“页面错误”
答案 0 :(得分:1)
array[VPN]
是VPN
的第array
个元素,恰好是指向字符串"1 123456"
的指针。例如,如果您返回array[VPN] + 1
,它将是指向字符串" 123456"
的指针。
因此,您可以返回array[VPN] + 2
,并根据需要获得指向字符串"123456"
的指针。
但请注意,我依赖于您保证字符串的内容确实是“1 123456”的形式,我建议您的代码也应该验证字符串是否真的是那种形式。