Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.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/6/entity-framework/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
C 将整型指针设置为常规整型_C_Pointers_Atoi - Fatal编程技术网

C 将整型指针设置为常规整型

C 将整型指针设置为常规整型,c,pointers,atoi,C,Pointers,Atoi,我试图将指针(processNum)设置为常规int(processNumTemp)。我该怎么做?我尝试只执行processNum=processNumTemp,这会给出一个错误,因为我试图将指针设置为非指针。我怎样才能做到这一点?下面是我的代码: int *processNum = (int *)malloc(sizeof(12)); int processNumTemp; processNumTemp = atoi(argv[1]); processNum = process

我试图将指针(processNum)设置为常规int(processNumTemp)。我该怎么做?我尝试只执行processNum=processNumTemp,这会给出一个错误,因为我试图将指针设置为非指针。我怎样才能做到这一点?下面是我的代码:

int *processNum = (int *)malloc(sizeof(12));
  int processNumTemp;

  processNumTemp = atoi(argv[1]);

  processNum = processNumTemp;

processNum=&processNumTemp

这将
processNumTemp
的地址存储到
processNum
中。我相信这就是你想要做的。然后可以通过取消引用指针来获取值。那就是使用
*processNum

当您像引用
processNum
一样引用指针时,您指的是它的地址,而不是它的内容。如果要更改变量指向的内容,应使用
*processNum
,否则将更改指针指向的内容,而不是指针指向的内容

假设
processNumTemp=74
。在代码中,您告诉
processNum
它现在应该指向内存地址
74
,该地址很可能无效。您没有告诉它将74存储在当前指向的内存地址(这可能是您想要的)

因此,您可以通过以下操作更改指向的数据:

*processNum = processNumTemp;
或者您可以更改指针指向的对象

前者复制存储在
processNumTemp
地址的值,并将其替换为先前存储在
processNum
指向的位置的值


后者不会更改
processNum
指向的数据,而是更改它指向的内容。在本例中,我们将其指向与
processNumTemp
指向的内容相同的内容。

De reference
您的指针访问存储在那里的数据,然后将其分配给相同类型的内容

*processNum = processNumTemp;
// * is the pointer de-referencing operator
// once you have exposed the data, now assign it
// to something of the same type.

不清楚是要将
processNumTemp
复制到分配的空间中,还是要使
processNum
指向
processNumTemp
。如果是后者,则应删除
malloc
*processNum = processNumTemp;
// * is the pointer de-referencing operator
// once you have exposed the data, now assign it
// to something of the same type.