08-01-2006, 00:18
|
|
|
|
חבר מתאריך: 04.08.02
הודעות: 4,468
|
|
...
מה לא תלוי במצביעים ב-C?
בכל מקרה, פשוט מאוד תקלטי מס' שלם (שמייצג את מס' האיברים במערך).
תכפילי את המס' הנ"ל בגודל של טיפוס המשתנה שאת מעוניינת ליצור מערך ממנו.
עם הגודל הנ"ל, תבצעי הקצאה בעזרת malloc (או מה שאת רוצה.. calloc למשל).
וזהו... לא לשכוח לבדוק האם ההקצאה עברה בשלום וגם לשחרר בסוף את הזכרון שהוקצא.
הממ בקוד זה ייראה משהו כזה:
קוד:
#include <stdio.h>
#include <stdlib.h>
typedef int general;
int main( int argc, char **argv )
{
int nElements;
general *nArr;
printf( "Max Elements: " );
scanf( "%d", &nElements );
/* skipping input validation */
nArr = malloc( nElements * sizeof( general ) );
if( nArr == NULL ) {
perror( "Malloc: " );
return EXIT_FAILURE;
} else { /* use it here */ free( nArr ); }
return EXIT_SUCCESS;
}
_____________________________________
C pogrammers never die. They are just cast into void.
נערך לאחרונה ע"י scripter בתאריך 08-01-2006 בשעה 00:22.
|