hix hix mình đã học qua bài mảng giờ tới con trỏ nhưng khi sử dụng con trỏ thay thế cho mảng thì lại bị loạn vì nhiều ứng dụng của con trỏ thay cho mảng quá các bạn cho mình hỏi với code thế này:
Code:
oid main()
{
char *ptr[5];
int i;
int j;
char cpyptr1[5][10],cpyptr2[5][10];
char *temp;// bien dem de trao doi cac xau ky tu
for (i=0;i<5;i++)
{
printf("\n Enter a String : ");
scanf("%s",cpyptr1[i]);
ptr[i] = cpyptr1[i];
}// cho phep nhap 5 xau ky tu
for (i=0;i<5;i++)
strcpy(cpyptr2[i],cpyptr1[i]);
for (i=0;i<4;i++)
{
for (j=i+1;j<5;j++)
{
if (strcmp(ptr[i],ptr[j])>0)
{
temp=ptr[i];
ptr[i]=ptr[j];
ptr[j]=temp;
}
}
}
printf("\n The Original List It ");
for (i=0;i<5;i++)
printf("\n%s", cpyptr2[i]);
printf("\n The Sorted list is ");
for(i=0;i<5;i++)
printf("\n%s", ptr[i]);
getch();
}
và code này :
Code:
int m1[100][100];
int m2[100][100];
int m3[100][100];
int a,b,c,d,e,f,g,h;
int w,r;
clrscr();
printf("\n xin nhap so dong va cot cua mang 1:");
scanf("%d%d",&a,&b);
for(c=0;c<a;c++)
{
for(d=0;d<b;d++)
{
printf("\n xin nhap phan tu thu %d cua mang 1:",d);
scanf("%d",&m1[c][d]);
}
}
printf("\n sau khi nhap xong in ra so phan tu vua nhap cua mang 1 la:");
for(c=0;c<a;c++)
{
printf("\n");
for(d=0;d<b;d++)
{
printf("%3d ",m1[c][d]);
}
}
thì tại sao mảng ở đây lại đc dùng khác nhau thế, cái đoạn code đầu tiên mình ko hiểu về con trỏ ptr[5] nghĩa là sao ?? nếu mình sử dụng cấp bộ nhớ động thì fải làm sao với bài dạng kiểu đấy??và mình khai mảng cpyptr1 2 chiều rồi khi dùng lại nhập có 1 chiều là sao ?? sao nó ko giống với code 2 tai fải nhập 2 dự liệu vào mảng m1????
Chết hỏi nhiều quá rồi
chắc mọi người không phiền bạn nào biết chỉ giúp mình với mình nghe nói bài con trỏ khá khó nhằn trog giáo trình C
.Mình xin cảm ơn các bạn rất nhiều^^!!