C 指向整数的指针
我使用一个指向intger的指针作为2 Dims数组,我编写了这些代码,但无法获取整数值C 指向整数的指针,c,pointers,C,Pointers,我使用一个指向intger的指针作为2 Dims数组,我编写了这些代码,但无法获取整数值 #include<stdio.h> #include<conio.h> void main(void) { int **pptr = 0, size = 0, size2 = 0, i, j; clrscr(); printf("Enter Size of Main Store n"); scanf("%d", &size); p
#include<stdio.h>
#include<conio.h>
void main(void)
{
int **pptr = 0, size = 0, size2 = 0, i, j;
clrscr();
printf("Enter Size of Main Store n");
scanf("%d", &size);
pptr = (int **) malloc(size * sizeof(int *));
printf("Enter Size of Sub Store n");
scanf("%d", &size2);
for (i = 0; i < size; i++) {
pptr[i] = (int *) malloc(size2 * sizeof(int));
}
printf("Enter Values n");
for (i = 0; i < size; i++) {
for (j = 0; j < size2; j++) {
scanf("%dn", pptr[i][j]);
}
}
clrscr();
printf(" Valuesn");
for (i = 0; i < size2; i++, pptr++) {
printf("%dn", *pptr + i);
}
getch();
}
#包括
#包括
真空总管(真空)
{
int**pptr=0,size=0,size2=0,i,j;
clrsc();
printf(“输入主存的大小n”);
scanf(“%d”,大小(&S);
pptr=(int**)malloc(size*sizeof(int*);
printf(“输入子商店n的大小”);
scanf(“%d”和&size2);
对于(i=0;i
它打印垃圾 scanf(“%d”,arg)
需要指向int
的指针,但是
for (i = 0; i < size; i++) {
for (j = 0; j < size2; j++) {
scanf("%dn", pptr[i][j]);
}
}
使用需要int
参数的%d
格式打印int*
*pptr+i
,即&pptr[0][i]
你应该
printf("%d\n", pptr[0][i]);
如果您想打印对角线的值(似乎是这样,因为您在循环中也增加了pptr
),或者更好
for(i = 0; i < size && i < size2; ++i) {
printf("%d\n", pptr[i][i]);
}
for(i=0;i
或者,如果要打印整个网格
for(i = 0; i < size; ++i) {
for(j = 0; j < size2; ++j) {
printf("%d ", pptr[i][j]);
}
printf("\n");
}
for(i=0;i
scanf采用的是int*
,而不是int
。所以
scanf("%dn", pptr[i][j]);
应该是:
scanf("%dn", &(pptr[i][j]));
或者可以是:
scanf("%dn", (pptr[i]+j));
此外,printf需要一个值(int
),而不是指针。所以
printf("%dn", *pptr + i);
大概应该是这样的:
printf("%dn", *(*pptr+i));
或者更好看的同类产品:
printf("%dn", pptr[0][i]);
输出的具体内容是什么?是的,我们只是在做,自上而下移动。@Eslam是的,您的打印循环也是错误的。我已经添加了一个补丁,尽管我不确定您真正想要在那里打印什么。
printf("%dn", pptr[0][i]);