0
正在创建我的2d数组char **缓冲区。 malloc部分起作用。 realloc部分正在生成分段错误。重新分配**数组
这些是执行以下操作的2个功能;
//sets up the array initially
void setBuffer(){
buffer = (char**)malloc(sizeof(char*)*buf_x);
for(int x=0;x<buf_x;x++){
buffer[x] = (char *)malloc(sizeof(char)*buf_y);
}
if(buffer==NULL){
perror("\nError: Failed to allocate memory");
}
}
//changes size
//variable buf_x has been modified
void adjustBuffer(){
for(int x=prev_x; x<buf_x;x++) {
buffer[x] = NULL;
}
buffer=(char**)realloc(buffer,sizeof(char*)*buf_x);
for(int x=0; x<buf_x;x++){
buffer[x] = (char*)realloc(buffer[x],sizeof(char)*buf_y);
strcpy(buffer[x],output_buffer[x]);
}
if(buffer == NULL){
perror("\nError: Failed to adjust memory");
}
}
但我怎么能更改缓冲区的大小,并在同一时间不删除其中的元素呢?或者我应该保存数组中的元素,然后把它们放回重新分配的一个?谢谢 – lfarr
@xing我修改了代码。你能否检查一下是否请你遵照你的建议。谢谢 – lfarr
这是一个锯齿状的阵列,而不是二维阵列!完全不同的数据类型! – Olaf