ポインタ配列として宣言された動的2D配列をCで作成しました。ポインタ配列とそれが指す行の両方の最後の行を削除するにはどうすればよいですか?
私が使用する場合
arr=realloc(arr , i*sizeof(int *));
iは3(4行-1)
4行目の列は削除されますか、それともこのようなものを使用する必要がありますか?
arr[i]=realloc(arr[i] ,sizeof(char));
arr=realloc(arr , i*sizeof(int *));
それが正しいか、free()を使用する必要がある場合
これが私のコードですが、列のある最後の行を削除したいのですが、方法がわかりません
int main(void) {
char **arr,str[500];
int i=0,j,min_str_pos;
long min;
arr = malloc(sizeof(int *));
arr[i] = malloc(500*sizeof(char));
do {
printf("Enter a string (or just press <ENTER> to exit): \n");
fgets ( str, 500, stdin );
if (strcmp(str, "\n")) {
strcpy(arr[i],str);
i++;
arr=realloc(arr , (i+1)*sizeof(int *));
arr[i] = malloc(500*sizeof(char));
}
} while (strcmp(str, "\n"));