我有一个动态结构,我正在尝试进行重新分配以在上面保存新信息,但是当我尝试这样做时,它不起作用...
我有这个结构:
typedef struct {
short int tipo;
short int gravedad;
char *mensaje;
char *proceso;
short int hora;
short int min;
short int seg;
}Info;
typedef struct {
Info * info;
int lenght;
}Logs;
我在main.c中执行一个malloc:
logs.info = (Info*) malloc (sizeof(Info*));
这是我尝试realloc()
的部分:
#define CHAR_1 1
...
read(fd, &c, CHAR_1);
if (c == '\n') {
l->lenght++;
int size = (l->lenght)+1;
l->info = (Info *) realloc (l->info, sizeof(Info*)*size);
}
第一次l->lenght
为0。
compiler
说:
realloc():下一个大小无效 中止(核心已弃用)
谢谢!