char* zmgkgk(char* str,int index,char value) {

int len = strlen(str);

if (index > len) {

return NULL;

}

char*x= calloc(len+2, 1);

char* woduq = str;

for (int i = 0; i < index; i++) {

char* woduq = str;

x[i] = woduq[i];

}

x[index] = value;

strncpy(x + index + 1, str + index, len - index);


return x;


}


int size=5;

int* insert(int arr[],int index,int value,int len) {

if (size < index) {

return NULL;

}

int sizetmp = size;

if (len <= size) {

int *x=calloc(size * 2, (sizeof(int)));

memcpy(x, arr,sizeof(int));

int* ptr = arr;

ptr = ptr + size - 1;

while (ptr !=( arr+index - 1)) {

x[sizetmp--] = *ptr--;

}

x[index] = value;

free(arr);

return x;



}

int* ptr = arr;

ptr = ptr + size-1;

while (ptr!=(arr+index-1)) {

arr[sizetmp--] = *ptr;

ptr--;

}

arr[index] = value;

return arr;

}

문자열은 변경불가니 무조건 새로 동적할당해서하고

int 배열은 arraylist비슷하게해봤는데 테스트는 되긴한데 이렇게 하는게맞음? 초보라 질문좀..

해당 인덱스에 삽입할려면 해당인덱스 이후의 요소를 하나씩 옮기는건알겠는데 동적할당하고 포인터로 옴길려니 머리 ㅈㄴ아픔