小编bbc*_*bc1的帖子

多次运行程序时如何使用或释放​​动态分配的内存?

如何释放动态分配的内存?

假设输入(假设它是由用户给出)是1000,现在如果我分配1000的内存,在此之后(第二次)如果用户输入为500,我可以重用已经分配的内存吗?

如果用户现在输入值为3000,我该如何使用它?我可以重用已分配的1000块内存,然后创建另外2000块内存吗?或者我应该创建所有3000块内存?

哪一个是可取的?

#include <stdio.h>
#include <stdlib.h>
typedef struct a
{
  int a;
  int b;
}aa;

aa* ptr=NULL;
int main() {
//code
int input=2;
ptr=malloc(sizeof(aa)*input);

for(int i=0;i<input;i++)
{
    ptr[i].a=10;
    ptr[i].b=20;
}

for(int i=0;i<input;i++)
{
    printf("%d  %d\n",ptr[i].a,ptr[i].b);
}

return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers dynamic-memory-allocation

-1
推荐指数
1
解决办法
70
查看次数

标签 统计

c ×1

dynamic-memory-allocation ×1

pointers ×1