- 论坛徽章:
- 0
|
目的:想建立一个结构体数组,把s1中的字符串赋给结构体数组中的key,s2中的字符串赋给结构体数组中的val
结果在1处的printf能正常输出,在2处的printf只能输出后面3组字符串,第一组不能正常输出,不知道怎么回事,请大家看看,谢谢了
- #include <stdio.h>;
- #include <stdlib.h>;
- #include <string.h>;
- struct SP
- {
- char *key;
- char *val;
- };
- main()
- {
- struct SP *re;
- int i;
- char *s1[]={"aaa","bbb","ccc","ddd"};
- char *s2[]={"111","222","333","444"};
- re = (struct SP *)malloc(4*sizeof(struct SP*));
- for (i = 0; i < 4;i++)
- {
- re[i].key = (char *)malloc( strlen(s1[i]) + 1);
- strcpy(re[i].key,s1[i]);
- re[i].val = (char *)malloc( strlen(s2[i]) + 1);
- strcpy(re[i].val,s2[i]);
- printf("%s---%s\n",re[i].key,re[i].val);/*-------1*/
- }
- for (i = 0;i < 4;i++)
- printf("%s---%s\n",re[i].key,re[i].val);/*--------2*/
- /*........................................................................................*/
- }
复制代码 |
|