gpt4 book ai didi

c - 访问结构数组会出现段错误

转载 作者:行者123 更新时间:2023-11-30 19:03:17 25 4
gpt4 key购买 nike

我正在使用键/值对数据类型实现哈希算法。我将字典存储为数据条目数组。我malloc它,但是当我迭代刚刚在inicializar_cerrada函数上分配的元素时,程序在第二次迭代时出现段错误。

我和我的合作伙伴一直在尝试解决这个问题,但问题仍然存在。

SSCCE:

#include <stdio.h>
#include <stdlib.h>

// ...

#define TAM 11

typedef struct entrada_ {
int ocupada;
char clave [LONGITUD_CLAVE];
char sinonimos [LONGITUD_SINONIMOS];
} entrada;

typedef entrada *tabla_cerrada;

void inicializar_cerrada(tabla_cerrada *diccionario, int tam) {
int i;
for (i = 0; i < tam; i++) {
printf("%d\n", i);
diccionario[i]->ocupada = 0;
}
}

int main() {
tabla_cerrada d = malloc(TAM * sizeof(entrada));
inicializar_cerrada(&d, TAM);
}

最佳答案

  1. diccionario 参数的函数定义中删除星号。 tabla_cerrada 已经是一个指针:

    void inicializar_cerrada(tabla_cerrada diccionario, int tam) {

  2. 将箭头表示法更改为点表示法。 dictionario[i] 是一个struct,而不是指向一个的指针:

    dictionario[i].ocupada = 0;

  3. 从函数调用中删除&dtabla_cerrada类型,它是一个指针:

    inicializar_cerrada(d, TAM);

关于c - 访问结构数组会出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54181935/

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