ABA


"צריך הסבר למשהו שמאוד מעצבן אותי בC"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15510 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15510
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   20:14   26.10.09   
אל הפורום  
  צריך הסבר למשהו שמאוד מעצבן אותי בC  
 
   ערכתי לאחרונה בתאריך 26.10.09 בשעה 20:20 בברכה, ronen333
 
רשמתי את הדבר הבא:

char * my_strncpy(char * src1,char *des1,int n)
{
char * t_src=src1;
char *t_des=des1;
src1-> 'z';
return src1;
}

int main()
{
char * st1="AviadShiberAmit";
char st2[6];

puts(my_strncpy(st1,st2,5));
return 0;

}


קיצצתי את הפונקציה כדי להגיע לעיקר ולא לסרבל- למה שאני מנסה להשים את התו Z במקום שמצביע עליו SRC1 זה אומר לי שהוא קבוע?!!?! אני משתגע מזה..
וזה שקול אם הייתי רושם כמובן

*src1='z'

וגם לא עובד.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  כמה דברים Net_Boy  26.10.09 20:48 1
     מכתב ronen333  26.10.09 20:59 2
         או על ה STACK או על ה HEAP Net_Boy  26.10.09 21:12 3
             okay, thanks =] ronen333  26.10.09 21:17 4

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   20:48   26.10.09   
אל הפורום  
  1. כמה דברים  
בתגובה להודעה מספר 0
 
   1)
האופרטור <- הוא שקול ל " (*var). "

והוא שימושי ל STRUCTS בשפת C ולכן השימוש שרשמת הוא בכלל לא נכון

2) שים לב , אתה מקצה את st1 על ה DATA SEGMENT ,כשמקצים מחרוזות בצורה של
char* = "SOME STRING"
אתה מקבל בעצם מצביע ל DATA SEGMENT והמחרוזת שבו היא CONST ולכן אין ביכולתך לשנות אותה ולכן אתה מקבל את השגיאה הזאת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   20:59   26.10.09   
אל הפורום  
  2. מכתב  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 26.10.09 בשעה 21:11 בברכה, ronen333
 
מממ אז איך אני צריך להגדיר את המערך CHAR כדי שאוכל לשנות אותו?

ולגבי ה<- צודק, פשוט הייתי כל כך נואש שניסתי את זה בלי לחשוב.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   21:12   26.10.09   
אל הפורום  
  3. או על ה STACK או על ה HEAP  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 26.10.09 בשעה 21:18 בברכה, Net_Boy
 
כדי להגדיר על הSTACK פשוט תעשה את ההגדרה הרגילה עם סוגריים מרובעים
על ה HEAP אתה מקצה באמצעות MALLOC ובסוף משחרר עם FREE

וכדי לשים ערכים אתה יכול להשתמש ב strcpy או memcpy

אגב , אני שם לב שאני זורק הרבה מושגים אבל ראיתי שאתה לומד אסמבלר אז אני מניח שאתה מבין למה אני מתכוון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:17   26.10.09   
אל הפורום  
  4. okay, thanks =]  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net