block allocation fixed

This commit is contained in:
Timerix22 2022-06-02 21:00:17 +03:00
parent 8c005321c2
commit bb79c5e2c7

View File

@ -38,14 +38,18 @@ template<typename T>
void Autoarr2<T>::add(T value) { void Autoarr2<T>::add(T value) {
if(!values){ if(!values){
//values=(T**)malloc(sizeof(T*)); //values=(T**)malloc(sizeof(T*));
values=new[sizeof(T*)]; values=new T*[1];
goto create_block; goto create_block;
} }
else if(block_length==max_block_length){ else if(block_length==max_block_length){
block_length=0; block_length=0;
create_block: create_block:
values=(T**)realloc(values,(blocks_count+1)*sizeof(T*)); T** new_values=new T*[blocks_count+1];
values[blocks_count]=new[](max_block_length*sizeof(T)); for(uint32 i=0;i<blocks_count;i++)
new_values[i]=values[i];
delete[] values;
values=new_values;
values[blocks_count]=new T[max_block_length];
blocks_count++; blocks_count++;
} }