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