【发布时间】:2013-10-29 04:59:25
【问题描述】:
双指针操作。 建议解决方法。
#include <iostream>
#include <stdio.h>
using namespace std;
/* Pointer Passed as argument */
void func(void **p1)
{
printf("Func %d\n",*p1);
}
/* main Function */
int main()
{
void **p1 = NULL;
int *p = (int *)malloc(sizeof(int));
p[0] = 20;
func((void**)&p);//pass by address
//How can we assign double pointer i.e (*p1 = &p)
printf("Main %d",*p); // print value
cin.get();
return 0;
}
//function end main.cpp
/*
Func " Garbage value "
Main 20
*/
我正在尝试使用双指针来检索数据。 有人可以调查一下,让我知道错误在哪里。
输出应该是 20 - 20 功能 20 主要 20
【问题讨论】:
-
问题是什么?你期望什么,实际输出是什么?
-
我希望这段代码能够工作
-
@PragRao 你得到了什么输出,你期待什么?
-
“双指针”在 C 或 C++ 中不是一个东西。你在这里玩的是一个“指向指针的指针”。
-
此代码不是 C - 应删除标记,但仅此编辑太小而无法接受。
标签: c++ c pointers void-pointers