b****g 发帖数: 192 | 1 void func(int *ptr)
{
ptr = (int *)malloc(sizeof(int) * 10);
}
void main(void)
{
int *ptr = 0;
for(int i=0; i<10; i++)
{
func(ptr);
}
}
问题:for循环里面的func(ptr)都干了些什么?
我回答分配了10次,每次10个整形的空间。
又问:main()函数要怎么改才能free由malloc()分配的的空间?
我就不回了。 |
u****0 发帖数: 155 | |
R*****i 发帖数: 2126 | 3
楼主,不是搞笑吧?这是最基本的c/c++的东东啊。
【在 b****g 的大作中提到】 : void func(int *ptr) : { : ptr = (int *)malloc(sizeof(int) * 10); : } : void main(void) : { : int *ptr = 0; : for(int i=0; i<10; i++) : { : func(ptr);
|
y*****e 发帖数: 4 | 4 这样不行吧? ptr 里是malloc出来的地址么?
【在 u****0 的大作中提到】 : free(ptr);
|
o********7 发帖数: 154 | |
b****g 发帖数: 192 | 6 能具体讲一下吗?
即使用**ptr,在main函数里面执行完func()之后ptr还是等于0啊
【在 o********7 的大作中提到】 : 那个func的input该用 **
|
c*b 发帖数: 3126 | 7 void func(int **ptr)
{
*ptr = (int *)malloc(sizeof(int) * 10);
}
void main(void)
{
int *ptr = 0;
for(int i=0; i<10; i++)
{
func(&ptr);
free(ptr);
}
}
【在 b****g 的大作中提到】 : 能具体讲一下吗? : 即使用**ptr,在main函数里面执行完func()之后ptr还是等于0啊
|
b****g 发帖数: 192 | 8 谢谢。原来和一个*的情况是一样的,要想改变参数的值,就把他的地址传进去。
【在 c*b 的大作中提到】 : void func(int **ptr) : { : *ptr = (int *)malloc(sizeof(int) * 10); : } : void main(void) : { : int *ptr = 0; : for(int i=0; i<10; i++) : { : func(&ptr);
|