struct ITEM
{
unsigned int id_;
unsigned short level_;
};
void reset(ITEM* item[])
{
for (unsigned short i = 0; i < 3; i++)
{
item[i]->level_ = 3-i;
cout << item[i]->id_ << " " << item[i]->level_ << endl;
}
}
int main()
{
ITEM* item[10];
for (unsigned short i = 0; i < 10; i++)
{
ITEM tmp;
tmp.id_ = i;
tmp.level_ = i;
item[i] = &tmp;
cout << item[i]->id_ << " " << item[i]->level_ << endl;
}
reset(item);
system("pause");
return 0;
}
#include
using namespace std;
struct ITEM
{
unsigned int id_;
unsigned short level_;
};
void reset(ITEM item[])
{
for (unsigned short i = 0; i < 10; i++) //验证传入的数据的正确性
{
cout << item[i].id_ << " " << item[i].level_ <<"111"<< endl;
}
for (unsigned short i = 0; i < 3; i++)
{
item[i].level_ = 3-i;
cout << item[i].id_ << " " << item[i].level_ <<"222"<< endl;
}
for (unsigned short i = 0; i < 10; i++) //验证修改数据后的正确性
{
cout << item[i].id_ << " " << item[i].level_ <<"333"<< endl;
}
}
int main()
{
ITEM item[10];
for (unsigned short i = 0; i < 10; i++)
{
item[i].id_ = i;
item[i].level_ = i;
cout << item[i].id_ << " " << item[i].level_ <<"ddd"<<endl;
}
reset(item);
system("pause");
return 0;
}
void reset(ITEM* item[])这种用法有问题,
void reset(ITEM *item); 或者 void reset(ITEM item[]),
struct ITEM
{
unsigned int id_;
unsigned short level_;
};
void reset(ITEM** item)
{
for (unsigned short i = 0; i < 3; i++)
{
item[i]->level_ = 3-i;
cout << item[i]->id_ << " " << item[i]->level_ << endl;
}
}
int main()
{
ITEM* item[10];
for (unsigned short i = 0; i < 10; i++)
{
ITEM *tmp = new ITEM; //这里用非指针的临时变量可能有问题
tmp->id_ = i;
tmp->level_ = i;
item[i] = tmp;
cout << item[i]->id_ << " " << item[i]->level_ << endl;
}
reset(item);
getchar();
return 0;
}
以上程序经验证,传输参数是正确的,不知是否能帮到你
// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
using namespace std;
struct ITEM
{
unsigned int id_;
unsigned short level_;
};
void reset(ITEM* item_arr[])
{
cout << endl;
for (unsigned short i = 0; i < 3; i++)
{
item_arr[i]->level_ = 3-i;
cout << item_arr[i]->id_ << " " << item_arr[i]->level_ << endl;
}
}
int main()
{
ITEM** item_arr = new ITEM* [3];
for (unsigned short i = 0; i < 3; i++)
{
item_arr[i] = new ITEM();
item_arr[i]->id_= i;
item_arr[i]->level_ = i;
cout << item_arr[i]->id_ << " " << item_arr[i]->level_ << endl;
}
reset(item_arr);
//释放内存
for (unsigned short i = 0; i < 3; i++)
{
delete []item_arr[i];
}
delete item_arr;
system("pause");
return 0;
}
// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
using namespace std;
struct ITEM
{
unsigned int id_;
unsigned short level_;
};
void reset(ITEM* item_arr[])
{
cout << endl;
for (unsigned short i = 0; i < 3; i++)
{
item_arr[i]->level_ = 3-i;
cout << item_arr[i]->id_ << " " << item_arr[i]->level_ << endl;
}
}
int main()
{
ITEM** item_arr = new ITEM* [3];
for (unsigned short i = 0; i < 3; i++)
{
item_arr[i] = new ITEM();
item_arr[i]->id_= i;
item_arr[i]->level_ = i;
cout << item_arr[i]->id_ << " " << item_arr[i]->level_ << endl;
}
reset(item_arr);
//释放内存
for (unsigned short i = 0; i < 3; i++)
{
delete []item_arr[i];
}
delete item_arr;
system("pause");
return 0;
}
0 0
1 1
2 2
0 3
1 2
2 1
请按任意键继续. . .