您的位置:首页 > 其它

结构体申请内存错误 传递了一个指针的拷贝

2013-12-25 10:30 274 查看
今天在写lua脚本的申请函数时出现了一个低级错误, 在一个函数中申请new,但是传递进去的是一个指针,如下init1 函数 这样写其实是错误的 正确地写法应该是init

或者可以修改init1返回申请的值。

我一直以为我这样是传的指针,但是其实我这样的写法是传的值。

#include <iostream>
using namespace std;

struct node
{
int a;
int b;

};

void init(struct node **pnode)
{
*pnode = new node;
(*pnode)->a = 11;
(*pnode)->b = 12;
}

void init1(struct node *pnode)
{
pnode = new node;
pnode->a = 11;
pnode->b = 12;
}

int main(int argc, char * argv[])
{

struct node *pnode=NULL;
init(&pnode); //正确

init1(pnode);//错误

cout << pnode->a << endl;

cout << pnode->b << endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐