typedef struct tagname {
char *name;
}Name;int newmemory( Name **method)
{
*method = new Name;
for (int i =0; i< 10; i++)
{
(*method)[i].name = new char[10];
}
return 1;
}
int main(int argc, char* argv[])
{
Name *myMethod;
newmemory(&myMethod);
return 0;
}我要问的是我可以直接del掉 *method 这个指针吗。还是要先del (*method)[i].name 然后del *method 。 是不是一定要从下级向上级一步步del掉。
即for()del --> del *method 这样。我想在另外一个函数中del掉这些指针 是不是要定义一个全局的method指针指向这个在newmemory()中形成的对象。 然后在新的函数在 for ()del; --> del *method.
char *name;
}Name;int newmemory( Name **method)
{
*method = new Name;
for (int i =0; i< 10; i++)
{
(*method)[i].name = new char[10];
}
return 1;
}
int main(int argc, char* argv[])
{
Name *myMethod;
newmemory(&myMethod);
return 0;
}我要问的是我可以直接del掉 *method 这个指针吗。还是要先del (*method)[i].name 然后del *method 。 是不是一定要从下级向上级一步步del掉。
即for()del --> del *method 这样。我想在另外一个函数中del掉这些指针 是不是要定义一个全局的method指针指向这个在newmemory()中形成的对象。 然后在新的函数在 for ()del; --> del *method.
2、不需要一个全局指针。你可以使用freememory( Name **method)这种形式阿。
{
*method = new Name[10];
for (int i =0; i< 10; i++)
{
(*method)[i].name = new char[10];
}
return 1;
}
int main(int argc, char* argv[])
{
Name *myMethod;
newmemory(&myMethod);
for (int i =0; i< 10; i++)
{
delete []((*method)[i].name);
}
delete []myMethod;
return 0;
}
char *name;
}Name;
int newmemory( Name **method)
{
*method = new Name[10];
for (int i =0; i< 10; i++)
{
(*method)[i].name = new char[10];
}
return 1;
}
int main(int argc, char* argv[])
{
Name *myMethod;
newmemory(&myMethod);
for (int i =0; i< 10; i++)
{
delete []((myMethod)[i].name);
}
delete []myMethod;
return 0;
}
可怕呀!
还有:
我要在 其他的函数中del 掉这个指针 是不是一定要定义一个全局的指针 !
然后 del 这个全局指针 是不是 Ya!