我想了解结构如何工作。了解结构的动态扩展
在下面的代码输出中,我发现在calloc和realloc之前,值正确地分配了。
有人可以解释这是怎么回事,如何检查我的结构是否正确创建。
非常感谢您的时间和帮助!
typedef struct db
{
int x;
};
int main()
{
int n = 1, i;
char yn = 'y';
db *tmp_row, *row;
for (n = 0; n < 10; n++)
printf("tmp_row address, size,value - %u, %d, %d\n", &tmp_row + n,
sizeof(tmp_row), tmp_row + n);
tmp_row = (db *)calloc(1, sizeof(db));
printf("\n\n");
for (n = 0; n < 10; n++)
printf("tmp_row address, size,value - %u, %d, %d\n", &tmp_row + n,
sizeof(tmp_row), tmp_row + n);
tmp_row = (db *)realloc(tmp_row, n * sizeof(db));
printf("\n\n");
for (n = 0; n < 10; n++)
printf("tmp_row address, size,value - %u, %d, %d\n", &tmp_row + n,
sizeof(tmp_row), tmp_row + n);
}
你是什么意思 “的价值观越来越正确分配” 是什么意思?你能否澄清你看到的输出结果,以及你期望看到的结果? –
假设你没有在代码中放入正确的内容,你的'typedef'仍然缺少该结构别名的名称。 – user2485710
嗨,地址和价值正在上涨的预期金额。地址是由8字节(我的操作系统是64位)和价值,我相信是int x的地址正在增加4. – csaw