我想动态地分配字符串数组,但我不知道我该如何做到这一点。所以我想构建一个结构并动态分配这个结构。所以我做了下面的代码,但是这段代码创建断言失败。动态分配字符串数组
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char str1[20];
char str2[20];
} String;
int main(void)
{
String * list;
list = (String *)malloc(sizeof(String));
int i = 1;
for (; i < 6; i++) {
realloc(list, i * sizeof(String));
printf("Input String 1: ");
scanf("%s", list[i - 1].str1);
printf("Input String 2: ");
scanf("%s", list[i - 1].str2);
}
for (i = 0; i < 5; i++)
printf("%s\t%s\n", list[i].str1, list[i].str2);
free(list);
}
我做了什么错,我该如何解决这个问题?
谢谢:)
你扔掉'realloc'的结果。 – BLUEPIXY