gpt4 book ai didi

C指针在循环中变为NULL

转载 作者:行者123 更新时间:2023-12-04 10:11:22 25 4
gpt4 key购买 nike

我发现了许多“指针变为 NULL”的问题,但很难将答案应用到我的问题上

我有 3 个嵌套结构。结构 A应该包含一个结构数组 B ,其中包含一个结构 C它本身应该包含一个 int 的数组:

typedef struct {
int32_t *data;
uint16_t nData;
uint16_t dataOffset;
} Window;

typdef struct {
Window *window;
const char *datasetPath;
} Dataset

typedef struct {
char *id;
uint8_t count;
Dataset *datasets;
} DatasetGroup;

我有一个 new结构的功能:

int8_t dataset_new(Dataset *ds, const char *datasetPath, uint16_t winSize){
ds->datasetPath = datasetPath;
ds->window = malloc(sizeof(*(ds->window));
ds->window->data = malloc(sizeof(int32_t) * (winSize));
return 0;

int8_t datasetgroup_new(DatasetGroup *dg, char *id){
dg->id = id;
dg->count = 0;
dg->datasets = malloc(sizeof(*(dg->datasets)) * 255);
}

我有一个 add添加 Dataset 的函数到 DatasetGroup :

int8_t datasetgroup_add(DatasetGroup *dg, const char *filePath, uint16_t winSize){
// Create the dataset
Dataset ds;
dataset_new(&ds, filePath, winSize);

// Add the dataset to the dataset array
dg->datasets[dg->count] = ds;
dg->count++;
return 0;
}

然后我遍历数据集以填充数据,执行如下操作:

     for (i = 0 ; i < datasetCount ; i++){
Dataset *ds = &(dg->datasets[i])

始终在第 2 个交互中,data数组变为空指针: data = ds->窗口->数据

我知道我在传递指针时做错了(?)但我不确定我到底做错了什么....

最佳答案

这看起来不错。所以检查代码的另一部分。您可以逐行调试代码,以便了解导致此错误的代码段。

关于C指针在循环中变为NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29924144/

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