क्या निम्न रूपांतरण सुरक्षित है?असुरक्षित रूपांतरण
int b[10][10];
char *x;
int a[]={0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
b[i][j]=a[i];
for(x=(char *)&b[0];x<=(char *)&b[9][9];x+=sizeof(a+1)) // Problem lies here!
printf("%d\n",*x);
मुझे नहीं लगता कि for
पाश में ऊपर रूपांतरण सुरक्षित है (मुझे लगता है कि यह मंच निर्भर है)। अगर मैं गलत हूं कृपया मुझे सही। मुझे आश्चर्य है क्योंकि कोड जीसीसी में -Wall -pedantic
विकल्पों का उपयोग करके संकलित किए जाने पर भी कोई चेतावनी दिए बिना संकलित करता है।
'ए', 'ए + 1' में क्या है? – GManNickG
मुझे लगता है कि यह एक गलत टाइप बी था। हालांकि मैं गलत हो सकता है ... – Pod
@GMan और @Pod: संपादित! –