C 指向整数的指针

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

我使用一个指向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);

    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]);