gpt4 book ai didi

c - 查找数组指针的长度 - Valgrind 错误 : Invalid read size of 1

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

void OneDToTwoD(char* rel){

/* all the declarations here */

while(rel[i] != '\0'){
i++;
}

...

在上面的代码中,我“有时”遇到了段错误。 valgrind 检查在行中向我抛出“无效读取大小 1” while(rel[i] != '\0'){

在那一行中,我试图计算出 rel 的长度。 我知道一定有更好的方法来做到这一点。我不能只做 sizeof 可以吗?

最佳答案

如果i初始化为零,并且rel指向有效的内存块,这将很好地工作。

  1. rel 指向无效内存块或 NULL。
  2. rel 不以 \0 终止
  3. i 不以 0 开头。

还有一个答案,你无法从指针知道内存块的大小。指针不是内存块。如果需要,指针可以指定无效的内存块。因此,如果您想知道内存块的长度,请在函数中添加 length 参数。

关于c - 查找数组指针的长度 - Valgrind 错误 : Invalid read size of 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13577575/

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