gpt4 book ai didi

循环字符数组缓冲区 - c

转载 作者:行者123 更新时间:2023-11-30 21:08:49 24 4
gpt4 key购买 nike

我正在使用 char * 数组来创建缓冲区,以将信息从多个映射线程移动到减少线程。我需要使数组呈圆形,但是,当数组空间不足时,我不断出现段错误。如何让数组变成圆形?我目前有

for(j = 0; j < i; j++){
int next = mr->nextIndex + j;
if(next > 1023){
next = 0;
}
mr->buffer[next] = temp[j];
}

数组设置为,

new_mr->buffer = malloc(sizeof(char *) * MR_BUFFER_SIZE);

宏为 1024。感谢任何帮助。

温度为

char *temp = malloc(sizeof(char *));

它的值(value)来自

memcpy(temp, kv, i);

并且 kv 从 main 传递到函数中。

最佳答案

这是错误的:

char *temp = malloc(sizeof(char *));

您使用 memcpy() 将一些数据存储到其中,但存储空间只有 sizeof(char*),即 4 或 8 个字节。您可能打算在那里使用其他尺寸,例如您传递给 memcpy()i 值。

关于循环字符数组缓冲区 - c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805692/

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