מערך פוינטרים

yhaim

New member
מערך פוינטרים

הגדרתי מערך של פוינטרים. עכשיו כל תא מכיל כתובת של מילה מתוך מחרוזת בזיכרון.
int count=0,i; char *s="gfdgf gdfgfd gfgfdg gfdgfdgdf"; for(i=0;s!='\0';i++) char *arr=new char[4]; arr[count]=(s+i);

עכשיו הקומפיילר מציג את השגיאה: cannot convert from 'char *' to 'char' למישהו יש רעיון?
 

tami120

New member
re

s -מציין את הכתובת של תחילת המחרוזת כשאתה מוסיף את i זה עדיין כתובת במחרוזת במקום i כדי להציב את התוכן שבאותה כתובת תכתוב:
arr[count]=*(s+i);​
 

yhaim

New member
זה בדיוק מה שרציתי

להכניס את הכתובת של תחילת כל מלה לתא נפרד במערך שמכיל פוינטר לתחילת המילה.
 

selalerer

New member
אני מניח שמה שרצית זה כן להציב...

...כתובות במערך ולשם כך עליך להגדיר מערך של מצביעים ולא של charים רגילים. הנה כך:
char **arr=new char *[4];​
ואז ההצבה תעבוד.
 
למעלה