我知道如何将一个数组插入指针数组。但是我无法将数组合并到指针数组中...... 请任何人都可以通过合并两个数组来帮助我创建指针数组....
#include<stdio.h>
int main(){
int n,m,i,A[100],B[100], *C;
printf("Enter size of A Array: \n");
scanf("%d",&n);
printf("Enter elements for A array: \n");
for (i=0;i<n;i++)
{
scanf("%d",&A[i]);
C++;
}
C=&A[0];
printf("\n Element in array are :\n");
for(i=0;i<n;i++)
{
printf("\t%d",(*C));
C++;
}
printf("Enter size of B Array: \n");
scanf("%d",&m);
printf("Enter elements for B array: \n");
for (i=0;i<m;i++)
{
scanf("%d",&B[i]);
C++;
}
C=&B[0];
printf("\n Element in array are :\n");
for(i=0;i<m;i++)
{
printf("\t%d",(*C));
C++;
}
return 0;
}
答案 0 :(得分:0)
如果要合并两个arrays
,只需将两个array
元素复制到一个数组中,就可以使用指针编写一个简单的代码:
int main(){
int n,m,i,*A,*B,size=100;
A=malloc(size*sizeof(int));
B=malloc(size*sizeof(int));
printf("Enter size of A Array: \n");
scanf("%d",&n);
printf("Enter elements for A array: \n");
for (i=0;i<n;i++)
scanf("%d",&A[i]);
printf("Enter size of B Array: \n");
scanf("%d",&m);
printf("Enter elements for B array: \n");
for (i=0;i<m;i++)
scanf("%d",&B[i]);
for(i=n;i<n+m;i++){
if(i>=size){
size*=2;
A=realloc(A,size*sizeof(int));
A[i]=B[i];
}
}
printf("\n Element in array are :\n");
for(i=0;i<m+n;i++)
{
printf("\t%d",(*A));
C++;
}
return 0;
}
答案 1 :(得分:0)
我不认为在这种情况下会使用单指针, 如果初始化第一个数组(以 3 个元素 1,2,3 为例),则使用单个指针,然后必须将其初始化到第一个数组的第一个位置以打印序列,然后使用第二个数组(3 个元素) 4,5,6) {在第一个 for 循环之后 :: C=&B[0]} 所以在第一个 for 循环中我增加了 C 指针,在该循环之后这意味着下一个 C 位置我已经将指针设置为 C=&B[0] 和然后对 B 数组执行相同操作并将指针设置为初始位置并打印它给出的第一棵树值和一些垃圾值的值(A 数组的剩余部分它没有转到 B 数组地址 idk 为什么) 所以我使用了指针数组
#include<stdio.h>
int main(){
int n,m,i,j,A[100],B[100], *C[100];
printf("Enter size of A Array: \n");
scanf("%d",&n);
printf("Enter elements for A array: \n");
for (i=0;i<n;i++)
{
scanf("%d",(A+i));
*(C+i)=A+i;
}
printf("Enter size of B Array: \n");
scanf("%d",&m);
printf("Enter elements for B array: \n");
for (j=0;j<m;j++)
{
scanf("%d",(B+j));
*(C+i+j)=B+j;
}
for (i=0;i<(n+m);i++){
printf("%d\t",*(C[i]));
}
return 0;
}