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

Sea*_*ean 0 c program-entry-point argv argc

我正在创建一个利用银行家算法的多线程程序,所有这些程序都经过硬编码和编译,但是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("] \n\n");
}
Run Code Online (Sandbox Code Playgroud)

执行时: ./a.out 10 7 5

它打印:

[1604031496 1604031499 1604031501 ] 
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 5

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

available[i-1] = atoi(argv[i]);
Run Code Online (Sandbox Code Playgroud)