Я пытался выполнить следующий код.Хотя задача тривиальна, я получаю ошибку сегментации.
Цель приведенного ниже фрагмента кода - создать многомерный массив с максимальным размером строки 4 и размером столбца 33. Затем после создания следует установитьсодержимое всех строк как 0, за которым следует символ '\0'
.Затем, в конце, он должен отобразить вывод на stdout
.
. Хотя я не новичок в программировании, я продолжаю получать подобные ошибки, поэтому, если возможно, пожалуйста, объясните мне, как я могу избежать таких ошибок вбудущее.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
int i,j,k,x,y;
char** arr;
arr = (char**) malloc(4 * sizeof(char*));
for ( i = 0; i < 4; i++) {
arr[i] = (char*) malloc(9 * sizeof(char));
memset(arr,0,8);
arr[i][8] = '\0';
}
for ( j = 0; j<4; j++) {
puts(arr[j]);
}
return 0;
}