01/10/2018, 10:01

Warning bài nhập xuất con trỏ trong C

Bài viết chương trình nhập xuất mảng con trỏ. Chương trình chạy đúng nhưng báo 2 warning: In function ‘NhapConTro’:|| Warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int **’ / In function ‘XuatConTro’: Warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘int *’…Giúp mình giải thích 2 cảnh báo này với!
Đây là code của mình:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void NhapConTro (int n, int *pa[])
{
    int i;
    for (i = 0; i < n; i++)
    {
        printf ("PA[%d] = ", i);
        scanf ("%d", pa + i);
    }
}

void XuatConTro (int n, int *pa[])
{
    int i;
    for (i = 0; i < n; i++)
        printf ("
 PA[%d] = %d", i, *(pa + i));
}

int main()
{
    int n;
    printf ("N = ");
    scanf ("%d", &n);

    int *pa[n];
    NhapConTro (n, pa);
    XuatConTro (n, pa);

    getch ();
    return 0;
}
rogp10 viết 12:08 ngày 01/10/2018

int* pa[] != int* pa ! Dư [] rồi bạn.

Tao Không Ngu. viết 12:04 ngày 01/10/2018

Hi Nguyễn Hoàng Nhân.
Bạn gg dịch cái wảning đó ra.

Melancholy viết 12:08 ngày 01/10/2018

int *pa[] tương ứng với mảng 2 chiều rồi nên chỉ cần int *pa là đủ.

Nguyễn Hoàng Nhân viết 12:10 ngày 01/10/2018

mình có dịch rồi nhưng không hiểu

Nguyễn Hoàng Nhân viết 12:15 ngày 01/10/2018

mình sửa lại nó xuất hiện 2 warning ở dưới hàm main :((

In function ‘main’
warning: passing argument 2 of ‘NhapConTro’ from incompatible pointer type|
note: expected ‘int *’ but argument is of type ‘int **’|

|warning: passing argument 2 of ‘XuatConTro’ from incompatible pointer type|
note: expected ‘int *’ but argument is of type ‘int **’|

Melancholy viết 12:12 ngày 01/10/2018

Bạn sửa trong hàm main nữa kìa. Khai báo mảng 1 chiều tĩnh thì dùng A[] mảng 1 chiều động thì int *A
Còn int *A[] hay int **A tương ứng với mảng 2 chiều.

Nguyễn Hoàng Nhân viết 12:17 ngày 01/10/2018

Okie…hết báo warning rồi…cảm ơn bạn!!

Bài liên quan
0