C -在数组中存储main()参数



我正在使用银行家算法创建一个多线程程序,所有这些都是硬编码和编译的,但是我有一个问题,从用户输入填充初始available数组

#DEFINE NUMBER_OF_RESOURCES 3
int available[NUMER_OF_RESOURCES];       //available will be length of argc i.i number of total resoruces
int main(int argc, char *argv[]) 
{
printf("AVAILABLE RESOURCE: n [");
//Populate Available Resource Array
for (i = 1; i < argc; i++)
{
    available[i-1] = argv[i];
    printf("%d ", available[i]);
}
printf("] nn");
}

当执行下列命令时:./a.out 10 7 5

它打印:

[1604031496 1604031499 1604031501 ] 

你不能用普通赋值将字符串转换为整数(你应该得到一个编译器警告,关于在没有强制转换的情况下将char*分配给int)。调用atoi()解析整数

available[i-1] = atoi(argv[i]);
  1. 使用atoi将字符串转换为int
  2. 确保你没有越界访问available
for (i = 1; i < argc && i < NUMER_OF_RESOURCES+1; i++)
{
    available[i-1] = atoi(argv[i]);
    printf("%d ", available[i-1]);
}

相关内容

  • 没有找到相关文章

最新更新