Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中使用字符指针传递int_C_Exec_Ipc - Fatal编程技术网

在C中使用字符指针传递int

在C中使用字符指针传递int,c,exec,ipc,C,Exec,Ipc,我想知道如何使用char指针传递int。一旦int值对于char太大,它就会失败。这就是我想弄明白的: char *args[5]; int i = 20; /*some other code/assignments*/ args[2] = (char *)&i; execv(path, args); 如果我是一个更大的值,比如400,我会怎么做 提前感谢。程序不使用整数作为参数,而是使用字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本

我想知道如何使用char指针传递int。一旦int值对于char太大,它就会失败。这就是我想弄明白的:

char *args[5];

int i = 20;

/*some other code/assignments*/

args[2] = (char *)&i;

execv(path, args);
如果我是一个更大的值,比如400,我会怎么做


提前感谢。

程序不使用整数作为参数,而是使用字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本没有意义的事情

二十是整数。这是你拥有的东西的数量,如果你有十八件,然后有人再给你两件。二十不能是可执行文件的参数

“20”是一个字符串。它可以用十进制表示数字二十。但这是一个由两个字符组成的序列,十进制数字“2”后跟十进制数字“0”

将字符串传递给可执行文件,而不是整数

当您输入类似于
tail-f20
的命令时,数字20不是参数之一。它们是字符串“tail”、字符串“-f”和字符串“20”(数字“2”后跟数字“0”)。里面没有数字,只有字符串(尽管其中一个恰好代表一个数字)

您可以这样做:

int i = 10;
char parameter[32];
sprintf(parameter, "%d", i);
// parameter now contains the string "10"
args[2] = parameter;

程序只是不接受整数作为参数,而是接受字符串。这些字符串可以是整数的十进制表示形式,但它们仍然是字符串。所以你在问如何做一些根本没有意义的事情

二十是整数。这是你拥有的东西的数量,如果你有十八件,然后有人再给你两件。二十不能是可执行文件的参数

“20”是一个字符串。它可以用十进制表示数字二十。但这是一个由两个字符组成的序列,十进制数字“2”后跟十进制数字“0”

将字符串传递给可执行文件,而不是整数

当您输入类似于
tail-f20
的命令时,数字20不是参数之一。它们是字符串“tail”、字符串“-f”和字符串“20”(数字“2”后跟数字“0”)。里面没有数字,只有字符串(尽管其中一个恰好代表一个数字)

您可以这样做:

int i = 10;
char parameter[32];
sprintf(parameter, "%d", i);
// parameter now contains the string "10"
args[2] = parameter;

你想解决的实际问题是什么?为什么你要用字符指针传递一个整数?我想你可能把数字和数字的表示混淆了。你真的想通过数字20(如果你有18件东西,而别人又给了你两件,那么你拥有的东西的数量)吗?或者您正在尝试传递字符串“20”(由十进制数字“2”后跟十进制数字“0”组成的字符串)?我正在尝试将整数作为参数传递给另一个程序,但程序不将整数作为参数。它们采用字符串(可以表示数字)。好吧,我正在尝试使用execvw将矩阵的维数传递给另一个程序。您要解决的实际问题是什么?为什么你要用字符指针传递一个整数?我想你可能把数字和数字的表示混淆了。你真的想通过数字20(如果你有18件东西,而别人又给了你两件,那么你拥有的东西的数量)吗?或者您正在尝试传递字符串“20”(由十进制数字“2”后跟十进制数字“0”组成的字符串)?我正在尝试将整数作为参数传递给另一个程序,但程序不将整数作为参数。它们采用字符串(可以表示数字)。好吧,我正在尝试使用execvThanks将矩阵的维数传递给另一个程序,以获得帮助和解释。谢谢您的帮助和解释。