【发布时间】:2013-10-07 10:00:14
【问题描述】:
此代码生成 26*26*26*26 hasname(使用 az 的组合),或者您可以说出我想分配给结构成员的随机名称。现在,当我通过首先分配该结构成员足够的内存来分配它时然后使用strcpy,只有这个代码生成的最后一个hashname被传递给结构,即zzzz(它是最后一个hashname)。我该怎么做才能从头开始分配hashname。
vcd_xyz[4] = '\0';
int count = 0;
for(int i=0;i<26;i++)
{
vcd_xyz[0] = 'a'+i;
for(int j=0;j<26;j++)
{
vcd_xyz[1] = 'a'+j;
for(int k = 0;k<26;k++)
{
vcd_xyz[2] = 'a' + k;
for(int l=0;l<26;l++)
{
vcd_xyz[3] = 'a' +l;
count ++;
printf("%s\n",vcd_xyz);
}
}
}
}
所以我正在使用
sss->Variables[0].hashname = (char*)calloc(strlen((char*)vcd_xyz)+1,sizeof(char));
strcpy(sss->Variables[0].hashname,(char*)vcd_xyz);
复制生成的哈希名,但它正在复制最后生成的哈希名,所以无论我在哪里使用tr0->Variables[0].hashname = (char*)calloc(strlen((char*)vcd_xyz)+1,sizeof(char));
strcpy(tr0->Variables[0].hashname,(char*)vcd_xyz);,只有 zzzz 会被打印出来。我做错了什么或者我应该怎么做才能按顺序分配哈希名.
【问题讨论】:
-
请写出您想要 C 还是 C++ 解决方案,相应地删除这些标签之一并写出您正在使用的编译器。
-
@LihO:任何一个都可以工作..因为我在 g++ 中编译
标签: c++ arrays string random generator