I am trying to copy a 1D array of Strings into a 2D array of strings in C.
I was able to achieve this with integerenter image description here
//Here is what I tried for integers. int main() { int arr[3][3]; int arr2[9]={1,2,3,4,5,6,7,8,9}; int i,j,k=0; for(i=0; i<3;i++){ for(j=0; j<3;i++){ arr[j][i] = arr2[i]; //rintf("%d\n",arr2[i]); } } for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%2d ", arr[j][i]); printf("\n"); } return 0; }
I changed my data to char and I tried to run the same code I got a segmentation error.Here is what I have tried so far and it didnt work. error :Segmentation fault (core dumped)
#include<stdio.h> #include<string.h> int main() { char *d[3][3]; // Destination array char *s[9]={"orange","apple","table","chair","cable","TV", "124","HI"}; // Source 1 Day array int i,j,k=0; for(i=0; i<3;i++){ for(j=0; j<3;i++){ strcpy(d[j][i], s[i]); } } for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%s ", d[j][i]); printf("\n"); } return 0; }
I have made some adjustment and now it print some weird strings
#include<stdio.h> #include<string.h> int main() { char d[3][3] ={0}; // Destination array char s[9][8]={"orange","apple","table","chair","cable","TV", "124","HI"}; // Source 1 Day array int i,j,k=0; for(i=0; i<3;i++){ for(j=0; j<3;j++){ d[j][i] = *s[i]; } } for(i=0; i<3; i++) { for(j=0; j<3; j++) printf("%s ", &d[j][i]); printf("\n"); } return 0; }