作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要为结构内的指针分配内存,但我不知道如何为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/
我是一名优秀的程序员,十分优秀!