ورود

نسخه کامل مشاهده نسخه کامل : مشکلی درباره ی اشاره گر های 2 بعدی



m.beh
02-06-2007, 00:26
سلام
من می خواهم به صورت پویا یک آرایه ی 2 بعدی از کاراکتر ها ایجاد کنم
یعنی یک آرایه که شامل اشاره گرهایی(pointer) باشه که هر کدوم به یک آرایه از کرکترها (string) اشاره میکنند
می دانم که باید با دستور char **array بنویسم ولی نمی دونم از نظر سینتکس اگه بخواهم طول و عرضشونو معین کنم چی کار کنم

#include<stdio.h>
#include<alloc.h>
#include<conio.h>
#include<stdlib.h>
main(){
char **p;
p=(char*)malloc(sizeof(char*)*3* ;
p[1]=(char*)malloc(1*2);
p[2]=(char*)malloc(1*5) ;
p[3]=(char*)malloc(1*4);
p[5]=(char*)malloc(1*8);
scanf("%s%s%s%s",p[1],p[2],p[3],p[5]);
printf("%s%s%s%s",p[1],p[2],p[3],p[5]);



این بر نامه را نوشتم ولی اگه با این دستورات آشنا باشید می دونید که p*درحقیقت آرایه ای از آرا یه هاست که ما اینجا براش 3 عنصر در نظر گرفتیم
اما اگر خطوط بعدی برنامه را بخوانید می بینید که عنصر 5 از ش را خواسته ایم و این برنامه error نداد که باید می داد
در ضمن فکر کنم که باید

p=(char**)malloc(sizeof(char*)*3*;

را بنویسم ولی error می دهد قسمتی که نوشته شده)**char) و فقط با یک ستاره قبول می کند
اگه راهی به ذهنتان می رسد کمک کنید
ممنون

HAW3D
08-06-2007, 09:28
سلام
تا اونجایی که من میدونم توی C محدوده ارایه وجود نداره و میتونین هر قسما از حافظه رو بدون تعریفش ازش استفاده کنین و ای مشکلی هم که شما میگین رو باید خودتون کنترل کنین

adamak88
09-06-2007, 13:53
در C اگر بيشتر از محدوده ي تعريف شده براي ارايه استفاده كني error نميده ولي ممكنه error اجرايي بده