gpt4 book ai didi

检查是否分配了内存中的某个地址

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:21 25 4
gpt4 key购买 nike

我有一个函数接收指向 100 个整数的动态数组的指针。但在此之前,我只有 50 个由 malloc 或 calloc 分配,而不是 100 个。

有没有一种方法可以让我检查是否分配了任何元素(例如第 79 个元素)而不是想知道这个 SIGSEGV 到底是什么意思?

我的问题纯粹是理论上的,我没有实际的代码可以展示。

最佳答案

不,指针不存储它的大小。您最好将大小和指针存储在结构中并改为传递它:

typedef struct
{
size_t size;
int *ptr;
} my_data;
void myFunc(my_data *data)
{
size_t i;
for(i = 0; i < data->size; i++)
{
// data->ptr[i];
}
}
void myFunc2(my_data *data, size_t index)
{
if(index < data->size)
{
// memory location exists
}
}

关于检查是否分配了内存中的某个地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928505/

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