gpt4 book ai didi

c - 如何将内存重新分配给结构内的指针?

转载 作者:行者123 更新时间:2023-11-30 14:32:11 24 4
gpt4 key购买 nike

我需要为结构内的指针分配内存,但我不知道如何为struct Compra内的指针分配内存

struct Compra
{
int id_cliente;
float preco_final;
int *id_artigos;
int *conta_artigos;
int receita;
int dia;
int mes;
int ano;
};

void Alloc_Memoria_Pointers(struct Compra **compras, struct Contador **contadores, int incr)
{
int *temp_a = NULL;
int *temp_q = NULL;
temp_a = (int*) realloc(*compras[0]->id_artigos, incr * sizeof(int));

if(temp_a == NULL)
{
printf("Alocacao de memoria para id artigos falhada:(\n");
}
else
{
(*compras)[0].id_artigos = temp_a;
}
}

最佳答案

正如评论中提到的,如果您只想修改(重新分配)结构体的成员,则只需传递指向结构体本身的指针,而不是指向结构体指针的指针。

类似的东西

struct Compra compra = { 0 };  // Initialize all member to "zero" or "null"
size_t new_size_of_artigos = 10; // Example size

Alloc_Memoria_Pointers(&compra, new_size_of_artigos);

那么你的函数可以很简单

void Alloc_Memoria_Pointers(struct Compra *compra, size_t new_size)
{
int *temp_a = NULL;

// Reallocate (or allocate) the memory
temp_a = realloc(compra->id_artigos, new_size * sizeof *temp_a);

if (temp_a == NULL)
{
printf("Alocacao de memoria para id artigos falhada:(\n");
}
else
{
compra->id_artigos = temp_a;
}
}

关于c - 如何将内存重新分配给结构内的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59932312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com