我正在尝试编写一个函数,它接受一个指向 int 的 void 指针,然后将 int 加倍,然后将其放回内存位置:
void doubleNumber(void *number){
number = &((*((int*)(number))) * 2);
}
因此,首先我将它从 void * 转换为 int *,然后我引用 int * 以获取值,然后我乘以 2,然后我获取它的地址以将其放回指针中。
谁能告诉我为什么我的逻辑不起作用?
谢谢
最佳答案
我会这样写:
void doubleNumber(void *number){
*(int*)number *= 2;
}
首先将number
转换为int*
类型。然后取消引用指针。然后加倍。
您的代码的问题在于您分配的是指针而不是指针对象。
关于c - 基本指针用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799996/