c/c++语言开发共享删除c中动态数组的最后一行和最后一列

我在C中创建了一个动态的2d数组,声明为指针数组。 如何删除指针数组中的最后一行和它指向的行?

如果我会使用

arr=realloc(arr , i*sizeof(int *)); 

我是3(4行-1)

是第四行的列要删除还是我需要使用这样的东西?

  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  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")); 

    首先,我修复了你的代码,所以它至少会编译:

     int main(void) { char **arr,str[500]; int i = 0; arr = malloc(sizeof(int *)); arr[i] = malloc(500*sizeof(char)); do { printf("Enter a string (or just press  to exit)"); 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")); } 

    注意arr[i]=str; 不是复制字符串的正确方法。 而是使用strcpy(arr[i], str);

    要删除数组的最后一行,只需使用:

     free(arr[i]); 

    现在通过删除数组的最后一列,您是否要删除数组中每个string的最后一个char

      以上就是c/c++开发分享删除c中动态数组的最后一行和最后一列相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522226.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐