c中的 动态数组 与进阶的 结构体动态创建 问题
struct sample1
{//定义结构体变量,并分配64组
char tabname[64];
char value[64];
char expression[64];
};
struct sample1 a[256] = {NULL}; //初始化为0
char colname[4096] = "";
char value[4096] = "";
..... //赋值a[i].tabname,a[i].value的过程
..... //
..... //
for(int i = 0; i < n; i++) //字符串拼接
{
strcat(colname, a[i].colname);
strcat(colname, ",");
strcat(value, "'");
strcat(value, a[i].value);
strcat(value, "',");
}
这是我程序的大致结构。
1、由于定义的char数组为4096太多了,我想将其优化为动态数组,我看用malloc和free可实现。
网上的例子都将colname = (char*)malloc(n1 * sizeof(char));中的n1当成已知量,而我的n1是变量,每次循环大小不一样,能否贴个类似的例子给我参考下
2、如何将结构体定义的struct sample1 a[256]也设置成动态内存,而不是固定的256组? c 结构体 动态内存
[解决办法]
都是可以动态分配的,n1可以是变量,可以:
colname = (char*)malloc(n1 * sizeof(char));
...
a = (struct sample1*)malloc(n2 * sizeof(struct sample1));