gpt4 book ai didi

将数组内容从一个复制到另一个(动态内存分配)

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

在我粘贴的代码中,将分割数据的内容(即“he”、“ll”和“oo”)复制到新的数据数组(这是二维数组)后。我正在释放 StringSplit[i]。但释放后,我也无法看到复制到二维数组 newData 的数据。这段代码中发生了什么以及如何确保保存变量“newData”中的数据。 newData 是全局变量

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

int main()
{
char *data= "Helloo";
StringOperations(data);
return 0;
}

最佳答案

您的代码存在 2 个严重问题,

  1. 中的字符串总是多一个字节。所以,你应该有

    int const_length = 3;
  2. free() StringSplit[i],然后取消引用您之前分配给它的指针。指针就是这样,它们指向内存。将一个指针分配给另一个指针不会创建新的内存,并且您取消引用与刚刚 free()ed 完全相同的指针。

  3. 没那么严重,但您应该检查 malloc() 是否返回有效的非 NULL 指针。

  4. 一点也不严重,只是转换malloc()的返回值is considered bad practice .

关于将数组内容从一个复制到另一个(动态内存分配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46345183/

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